signum писал(а):А как считать?
Если для gcc, то ориентироваться можно отталкиваясь вот отсюда (ближе к концу страницы).
signum писал(а):А как считать?
Eprinter писал(а):В общем понятно - надо покупать в другом месте ещё один чип и проверять...
Код: Выделить всё
if(button)
{
flag= 0;
counter= 0;
}
else
{
if(++counter > N) flag= 1;
}
yron писал(а):Извините меня пожалуйста за тупость.Не могли бы вы написать простенькую программу на включение и выключение светодиода чтобы я мог понять принцип работы данного кода.Жаль что я только учусь и не умею все что умеете вы(((((( Ребят ну помогите кто нибудь.
Код: Выделить всё
#include <mega8.h>
#include <delay.h>
void main(void)
{
PORTB=0x00;
DDRB=0xFF;
PORTD=0x7F;
DDRD=0x00;
ACSR=0x80;
while (1)
{
while(PIND.0==1) {}
delay_us(400);
if (PINB.0==1)
{ PORTB.0=0;
PORTB.1=0; }
else
{ PORTB.0=1;
delay_ms(5000);
PORTB.1=1;
delay_ms(10000);
if(PIND.1==0)
{ PORTB.2=1; }
else
{ PORTB.0=0; }
}
while (PIND.0==0) {}
delay_us(400);
};
}yron писал(а):Я буду все таки базироваться на AVR
yron писал(а):Примеры там хорошие но вылетают ошибки типа undefined symbol CLKPR .
yron писал(а):Как сделать чтобы после нажатия на кнопку PORTB.0=0 через 5 секунд PORTB.1=1 через 10 секунд проверяет датчик PIND.1 и если на нем 1 то все начинается заново отсчета 5 секунд. А если PIND.1=0 то PORTB.2=1 и пока PIND.1=0 программа удерживает PORTB.1=1 PORTB.2=1

когда не умеешь задать вопрос, то и ответа ждать нечего.... у Вашего ТЗ очень большая "недосказанность" .......yron писал(а):Трудно когда некому подсказать .
если есть желание (а литературы по AVR сейчас хоть отбавляй), то обязательно научитесь. Научить этому невозможно..... У меня огромное желание уметь программировать а кроме вас меня никто не научит мне не на кого надеяться .
Код: Выделить всё
while(PIND.0==1) {}//Тупим в цикле пока кнопка 1 не нажата
delay_us(400);//Тут пауза
if (PINB.0==1)//Если на выходе 0 порта Б лог. один то <<--уверены?
{ PORTB.0=0; //выключаем выход 0 порта Б!!!
PORTB.1=0; }//выключаем выход 1 порта Б Зачем??