00001
00002
00003
00004
00005
00006 #include "piccolo_all.h"
00007 #define USE_OR_MASKS //timers.h-ben "VAGY" művelettel egyesíthető makrók legyenek
00008 #include "timers.h"
00009 #include "delays.h"
00010
00023 #pragma interrupt hi_isr //Timer0 megszakítás kiszolgálása
00024 void hi_isr(void) {
00025 mLED_4_Toggle()
00026 INTCONbits.TMR0IF = 0;
00027 }
00028
00029 #pragma interruptlow lo_isr
00030 void lo_isr() {
00031 }
00032
00037 void delay_ms(unsigned int d) {
00038 unsigned int i;
00039 for(i=0; i<d; i++) {
00040 Delay1KTCYx(12);
00041 }
00042 }
00043
00044 void main (void) {
00045 unsigned char fokozat=0;
00046 unsigned char ps[]={T0_PS_1_32, T0_PS_1_64, T0_PS_1_128,T0_PS_1_256};
00047 mInitAllLEDs();
00048 mInitSwitch1();
00049
00050 INTCON2bits.TMR0IP=1;
00051 OpenTimer0(TIMER_INT_ON
00052 | T0_16BIT
00053 | T0_SOURCE_INT
00054 | T0_PS_1_32 );
00055 RCONbits.IPEN=1;
00056 INTCONbits.GIEH=1;
00057 INTCONbits.GIEL=0;
00058
00059
00060 while (1) {
00061 while(SW1==1);
00062 delay_ms(20);
00063 if(fokozat==3) {
00064 fokozat = 0;
00065 } else {
00066 fokozat++;
00067 }
00068 T0CON=(T0CON & T0_PS_MASK) | ps[fokozat];
00069 ChangeBits(LEDport,fokozat,0x03);
00070
00071 while(SW1==0);
00072 delay_ms(20);
00073 }
00074 }