?lang_form? ?lang_select? ?lang_submit? ?lang_endform?
{HEADER END}
{FILE START}

library

?curdirlinks? - Rev 3

?prevdifflink? - Blame - ?getfile?

////////////////////////////////////////////////////////////////
// Program pro otestovani funkci knihovny KBD.C
// Jde o pouziti funkci bez prerusovacich rutin
// Pro casovani je pouzita hlavni smycka programu
////////////////////////////////////////////////////////////////
//
// (c) PEFI 2003
// Verze 0.00     - uvodni verze
//
////////////////////////////////////////////////////////////////

#include <16F876.h>
#use delay(clock=4000000,RESTART_WDT)
#fuses XT,WDT,NOBROWNOUT,NOPROTECT,NOLVP

// prepinace programu
#define FCE_GETC
//#define FCE_WAITC                    // pouzijeme funkci, ktera ceka na klavesu a spi
//#define FCE_TIMEOUTC                 // pouzije funkci, ktera ceka na klavesu jen po urcitou dobu


// LCD Display
#define LCD_RS          PIN_B2      // rizeni registru LCD displeje
#define LCD_E           PIN_B3      // enable LCD displeje
#define LCD_DATA_LSB    PIN_A0      // pripojeni LSB bitu datoveho portu LCD displeje (celkem 4 bity vzestupne za sebou)
#include <lcd.c>


// klavesnice
#define                 KBD_WDT  1  // zapina realizaci kbd_waitc pomoci WDT timeru
#include <kbd.c>

/*************************************************/
/********* HLAVNI SMYCKA PROGRAMU ****************/
/*************************************************/

void main() {

 int c;

   setup_timer_0(RTCC_INTERNAL | WDT_36MS);

   lcd_init();
   kbd_init();

   #ifdef FCE_GETC
    printf(lcd_putc,"Loop: kbd_getc  ");
   #endif
   #ifdef FCE_WAITC
    printf(lcd_putc,"Loop: kbd_waitc  ");
   #endif
   #ifdef FCE_TIMEOUTC
    printf(lcd_putc,"Loop:kbd_timeoutc");
   #endif

   while(1)
   {
   #ifdef FCE_GETC
      kbd_pullkbd();
      delay_ms(20);
      kbd_ticktimer();
      c=kbd_getc();
   #endif

   #ifdef FCE_WAITC
      c=kbd_waitc();
   #endif

   #ifdef FCE_TIMEOUTC
      delay_ms(1000);
      lcd_gotoxy(1,2);
      printf(lcd_putc,"Ceka na stisk   ");
      c=kbd_timeoutc(0x30);
   #endif

     if (c!=0)
       {
        lcd_gotoxy(1,2);
        printf(lcd_putc,"Stisknuto %2X ",c);   // vypise kod klavesy
       }
   #ifdef FCE_TIMEOUTC
      else  {
        lcd_gotoxy(1,2);
        printf(lcd_putc,"timeout vyprsel ");   // vypise kod klavesy
      }
   #endif
   }
}

// End of File
{FILE END}
{FOOTER START}

Powered by WebSVN v2.8.3