Мигалка? Тогда PIC10F20x гораздо практичнее ;) Не говоря уже о
atmega168 в корпусе SIP4 :)
#include <pic.h> #include <htc.h> __CONFIG(MCLRDIS & WDTDIS); #define RES 0b00001110 #define ON 0b00001101 #define PLUS 0b00001011 #define ALL_OFF 0b00001111 #define TIME 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< TIME)) cnt++; // подсчитаем время нажатия кнопки if (cnt < TIME) TRIS = RES; else TRIS = PLUS; delay(150); TRIS = ALL_OFF; while (GP3==0); // если кнопка не отжата ждем.. delay(10); } } }
-
- У Tiny10 есть АЦП! :) - vpv.vpv(28.08.2023 12:24)