Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2014, 13:26   #21
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Вроде, в настройках была опция перед билдом сохранять файлы...
p51x вне форума Ответить с цитированием
Старый 08.05.2014, 17:11   #22
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
По умолчанию

Просто в других средах разработки, как Delphi или MS Visual Studio там всё автоматом делается.) Привычка...)
Это вам не это
25-й кадр вне форума Ответить с цитированием
Старый 10.05.2014, 05:47   #23
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
По умолчанию

Всё -таки void main(void) нормально работает, не обязательно возвращать.
Это вам не это
25-й кадр вне форума Ответить с цитированием
Старый 10.05.2014, 08:58   #24
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Не стоит привыкать, это вольности, которые пока позволяют. Привыкайте к стандарту.
p51x вне форума Ответить с цитированием
Старый 14.05.2014, 15:16   #25
25-й кадр
Человек
Форумчанин
 
Регистрация: 04.04.2011
Сообщений: 178
Смущение

Вот, что сделал за денёк... Всё делается на ATmega16A...
Код первой микросхемы(ведущего)...
Код:
#include <io.h>
#include <delay.h>
#include <spi.h>

void main(void)
{

PORTD=0b00000000;
DDRD=0b00000011;


DDRB=0b11110000;


SPSR=0x00;

while (1)
    {
        if(PIND.0==0b00000001)
        {
        PORTC=0b00000001;
        spi('1');
        delay_ms(100);
        spi('0'); 
        PORTC=0b00000000;
        }
        
        if(PIND.1==0b00000001)
        {
        PORTC=0b00000010;
        spi('1');
        delay_ms(100);
        spi('0'); 
        PORTC=0b00000000;
        }    
    

    }
}
Код второй микросхемы(ведомого)...
Код:
#include <io.h>

interrupt [SPI_STC] void spi_isr(void)
{
 unsigned char data;
 data=SPDR;
 if(data=='1')  
 {
 PINC=0b00000001;
 }
 if(data=='0')
 {
 PINC=0b00000000;
 }
}

void main(void)
{
PORTC=0b00000000;
DDRC=0b00000011;

#asm ("sei")
while (1)
    {
     if(PIND==0b00000001)
     {
      PORTC=0b00000001;
      
     } 
      
     if(PIND==0b00000010)
     {
      PORTC=0b00000010;
      
     }

    }
}
Приложение схема в протеус...

Собственно, вопрос. При нажатии на первую кнопку, горит зелёный светодиод, но если нажать вторую(по которой должен гореть красный), красный не горит, только если выключить тест протеуса и включить снова, то красный горит, если первым включить, зелёный не горит. Помогите подретушировать код, чтоб нормально было. И, если не сложно, подскажите(очень хотелось бы кодом), как реализовать обе кнопки на 1 канал. Т.е. Жмёшь на одну кнопку, сигнал идёт через 1 канал от первой микросхемы ко второй и горит зелёный, после, жмёшь вторую кнопку, по этому же каналу идёт сигнал и начинает гореть красный, а зелёный сбрасывается... Ломаю голову, я пока что сделал на 2 порта и то не доработал, уже голова пухнет... Подскажите.
Изображения
Тип файла: jpg Безымянный.jpg (75.7 Кб, 137 просмотров)
Это вам не это
25-й кадр вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
avr atmega16 Defunate Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 23.09.2011 14:46
ИБП режим AVR evgenii0494 Компьютерное железо 0 13.06.2011 15:57
прошивка AVR wanes101 Компьютерное железо 0 22.01.2011 20:28
AVR Sparky Микроконтроллеры, робототехника, схемотехника, 3D принтеры 6 31.12.2009 16:53
с/c++ для avr gaka1995 Общие вопросы C/C++ 1 25.10.2009 13:55