ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
844687 Топик полностью
Гудвин, волшебник (30.05.2018 15:46, просмотров: 172) ответил Evgeny_CD на Хороший кандидат. Но система команд PIC - это для ценителей :)
Оно и на HT "ЦЭ" неплохо дышит в 512 байтах :)  //my_cruise #include <pic.h> #include <htc.h> __CONFIG(MCLRDIS & WDTDIS); #define RES 0b00001110 #define ON 0b00001101 #define PLUS 0b00001011 #define ALL_OFF 0b00001111 #define TRESH 20000 // 1 сек static volatile unsigned int cnt; // @ 0x10; void delay(unsigned int value) { char i; while(value > 0) { for (i=0;i<97;i++); value--; } } void main(void) { OSCCAL=0b10000000; // минимальная частота для снижения потребления TRIS = 0b00001111; // настраиваем линии GP3, GP0, GP1, GP2 на вход OPTION=0b11000000; // выключим всякие wake up CMCON0=0b01000000; // отключаем компаратор GPIO=0x00; // выходы = 0 //GPIO=0x0f; // выходы = 1 // для отладки delay(5000); // после подачи питания (включения зажигания) ждем 5 сек; TRIS = ON; // кнопка ON delay(150); // 150 мс TRIS = ALL_OFF; // while (1) { if (GP3==0) { delay(10); // 10 мс // проверка на дребезг if (GP3!=0) continue; cnt=0; while ((GP3==0) && (cnt< TRESH)) cnt++; // подсчитаем время нажатия кнопки if (cnt < TRESH) TRIS = RES; else TRIS = PLUS; delay(150); TRIS = ALL_OFF; while (GP3==0); // если кнопка не отжата ждем.. delay(10); } } }