Сб июн 20, 2015 15:37:14
Понятно. Аналог задержки, но без задержки... т.е. получаем нечто, что было 10 миллисекунд назад, и надеемся, что сейчас оно такое самое и есть. Аесли нет? В чём смысл отложить опрос состояния кнопок на 10 мс?Alexeyslav писал(а):каждое 10-е прерывание - тупо запоминаем состояние портов с кнопками и всё.
Сб июн 20, 2015 16:15:02
Барсик писал(а):В чём смысл отложить опрос состояния кнопок на 10 мс?
Сб июн 20, 2015 16:22:46
Сб июн 20, 2015 18:42:54
Дошло... Спасибо.КРАМ писал(а):...а ЗАЩЕЛКИВАТЬ...
Чт ноя 12, 2015 22:25:37
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void){
DDRB |= (1<<PB7);
DDRC &= ~(1<<PC3);
while(1){
if((PINC & (1<<PC3)) == 1){ //If switch is pressed
PORTB |= (1<<PB7); //Turns ON LED
_delay_ms(3000); //3 second delay
PORTB &= ~(1<<PB7); //Turns OFF LED
}
}
}
Чт ноя 12, 2015 22:38:49
Чт ноя 12, 2015 22:53:21
Mishany писал(а):if(PINC & (1<<PC3) == 1){ //If switch is pressed
не хватает скобок if((PINC&(1<<PC3))==1){
Чт ноя 12, 2015 22:58:35
Чт ноя 12, 2015 23:09:48
B@R5uk писал(а):Токоограничивающий резистор надо последовательно со светодиодом поставить.
Чт ноя 12, 2015 23:27:45
nurekil писал(а):Сперва 110ом, а потом 150. Не загорается..
Чт ноя 12, 2015 23:31:23
Отпаяйте базовый резистор от МК и подключите на плюс питания. Если не загорится и в этом случае, то проблема с транзистором или светодиодом.nurekil писал(а):Не загорается...
Чт ноя 12, 2015 23:32:55
B@R5uk писал(а):Отпаяйте базовый резистор от МК и подключите на плюс питания.
Пт ноя 13, 2015 05:26:36
if((PINC & (1<<PC3)) == 1)
if(PINC & (1<<PC3))
Сб ноя 14, 2015 02:04:03
Сб апр 02, 2016 08:33:57
void OPROS_KN ()
{ unsigned char VIBORKA1 ;
VIBORKA1= read_adc(0);
if ( VIBORKA1 >240 ) return; //ничего не нажато подтяжка тянет
delay_ms(15);
if (read_adc(0) >VIBORKA1+1 ) return; // если повторный уровень олтчается больше чем на +-1 то вых
if ( VIBORKA1 >read_adc(0)+1 ) return; // если повторный уровень олтчается больше чем на +-1 то вых
if (VIBORKA1<8) /// нажат выбор реж
{
if (Mode_SLCT <2) Mode_SLCT++;
else Mode_SLCT=0;
}
if (Mode_SLCT ==0)
{
LCD_PutChar (0, 0 ,80); //P
LCD_PutChar (9, 0 ,79); //O
LCD_PutChar (18, 0 ,82); //R
nlcd_Line(porog,10,porog, 160, black ) ;
if ( VIBORKA1>75 & VIBORKA1<85) porog=porog-2 ; // ацп канал 0 выход =80 нажат минус
if ( VIBORKA1>98 & VIBORKA1<108) porog=porog+2 ; // ацп канал 0 выход =103 нажат плюс
nlcd_Line(porog,10,porog, 160, yellow ) ;
print_int( 36,0, porog);
}
if (Mode_SLCT ==1)
{ LCD_PutChar (0, 0 ,77); //M
LCD_PutChar (9, 0 ,88); //X
LCD_PutChar (18, 0 ,61); //=
if ( VIBORKA1>75 & VIBORKA1<85) multiplerX++ ; // ацп канал 0 выход =80 нажат минус
if ( VIBORKA1>98 & VIBORKA1<108) multiplerX-- ; // ацп канал 0 выход =103 нажат плюс
if (multiplerX==0 ) multiplerX= 1 ;
print_int( 36,0, multiplerX);
}
if (Mode_SLCT ==2)
{ LCD_PutChar (0, 0 ,77); //M
LCD_PutChar (9, 0 ,89); //X
LCD_PutChar (18, 0 ,61); //=
if ( VIBORKA1>75 & VIBORKA1<85) { multiplerY=1; DEL_ON ; } // ацп канал 0 выход =80 нажат минус
if ( VIBORKA1>98 & VIBORKA1<108) { multiplerY=0 ;DEL_OFF; } // ацп канал 0 выход =103 нажат плюс
print_int( 36,0, multiplerY);
}
}
Вт дек 06, 2016 20:01:53
// Чтение клавиатуры
do
{
_delay_ms(50); // Задержка от дребезга контактов
Key1 = PIND & ~PINSQW; // На PINSQW приходит меандр 1 Гц от DS1307, исключаем меандр из опроса клавиш.
_delay_ms(50);
Key2 = PIND & ~PINSQW;
}
while (Key1 != Key2);
Вт дек 06, 2016 21:00:10
Чт дек 08, 2016 17:28:38
Пт дек 09, 2016 15:27:16
Пт дек 09, 2016 23:16:23