Гудвинволшебник (06.03.2014 13:34, просмотров: 368) ответил Гудвин на У кого пепелац с погонялом Ford, может пригодиться...
Кишки. #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);
    } 
  } 
}