ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1344678 Топик полностью
Гyдвин, волшебник (27.08.2023 04:18, просмотров: 258) ответил Evgeny_CD на Хабр. Выжимаем ATtiny10, практическое применение.
Мигалка? Тогда 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);
 

    } 
  } 

}



https://ffclub.ru/post/15258263/