PIC casova konstanta 1 sec

Snail Instruments snail@snailinstruments.com
Úterý Červen 26 09:50:26 CEST 2007


void interrupt() {
         INTCON &= (~(1<<T0IF)&0xFF);           // V assemlberu BCF INTCON,T0IF
         timeticks++;
         if (timeticks==4000){
                 RPM=RPMacc;
                 timeticks=0;
                 RPMacc=0;
                 fNewRPM=TRUE;
         }
}

main(){
   while(1){
         if (hrana signalu) RPMacc++;            //Pokud je RPMacc 
vice nez 1 byte, muse se na
                                                 //inkrementaci 
zakazat preruseni!!
         if (fNewRPM){
                 fNewRPM=FALSE;
                 nova hodnota otacek je v promenne RPM - zde zpracovat
         }
   }
}

At 09:16 AM 6/26/07, you wrote:
>Dejte mi kousek zdrojaku jak mam udelat ten generator 1 sec, co
>nejpresneji.....
>
>krystal mam 4096 kHz
>Jedna se o picku 16f627.
>a kod mam takovyto
>
>
>void interrupt() {   timeticks++;   INTCON = 0x20;           // Set
>T0IE, clear T0IF
>
>}
>
>main   OPTION_REG = 0x00;   INTCON = 0xA0;           // Enable TMRO
>interrupt
>
>
>jednu sekundu odchytnu jako
>if (timeticks>(sekundaticks+4000)) {//dekunda
>    sekundaticks=timeticks;
>                                                      }
>zatim mi 4000 casove vychazi pres 2 sekundy.




Další informace o konferenci Hw-list