PIC18F4620 TMR1 furcsa

hg12345 hg12345 at freemail.hu
Fri May 25 06:38:34 CEST 2007


Hi!

Nézted már reset után a sec10_postscaler változód értékét.
Egy sort beszurnék

 if (sec10_postscaler  >5) sec10_postscaler =5 ;

Szeritnem megy az IT csak mire leszámól addig eltelik az a kis idő amit 
mondtál. 

Egyébbként talán ez is elegendő:

sec10_postscaler &= 0x07 ;

 Hi
    




A rutint átírnám a következő képpen



Moczik Gabor <pm at progzmaster.hu> írta:

> Hi!
> 
> Lassan fel napja ezzel a procival kinlodok...
> Furan viselkedik a TMR1 (is :-) )
> Boot utan felkonfiguralom, de par masodpercig nem jon megszakitas, 
utana 
> rendesen megy.
> 
> A kod ide vago reszei:
> 
> #define TMR1_PRELOAD    19456     /* 50Hz @ 18.432MHz 
PRESCALE=2 */
> 
> #define TMR1_PRELOAD_L  (TMR1_PRELOAD&0x00FF)
> #define TMR1_PRELOAD_H  (TMR1_PRELOAD/256)
> 
> volatile unsigned char sec10_postscaler=5;
> volatile unsigned long ticks;
> 
> static void interrupt low_priority isr_lo(void)
> {
>      if (TMR1IF && TMR1IE) {
>          TMR1IF=0;
>          TMR1H=TMR1_PRELOAD_H;
>          TMR1L=TMR1_PRELOAD_L;
>          sec10_postscaler--;
>          if (sec10_postscaler==0) {
>              sec10_postscaler=5;
>              ticks++;
>          }
>      }
> }
> 
> void main(void)
> {
> 	
>      // configure TMR1
>      T1CON=0b10010001;             // 16 bit, int. clock, prescale=2
>      TMR1H=TMR1_PRELOAD_H;
>      TMR1L=TMR1_PRELOAD_L;
> 
>      // configure interrupts
>      IPEN=1;      // enable priority
>      PEIE=1;      // enable low priority interrupts
> 
>      TMR1IE=1;    // enable TMR1 int (50Hz, timing functions)
>      TMR1IP=0;    // low priority
> 
>      GIE=1;
> 
>      for(;;) {
>          lcd_goto(0);
>          printf("Ticks: %d",ticks);
>      }
> }
> 
> ---------------------------
> Tizedmasodpercenkent lepteti a "ticks" valtozot, de az elejen par 
> masodpercig 0-t mutat, utana elindul.
> 
> Egyebkent 18F452-n ugyanez a kod jol mukodik...
> 
> -- 
> ((( Móczik Gábor  )))--((( pm -> @ -> progzmaster -> . -> hu  )))
> ((( Skype: moczik )))--((( Website: http://www.progzmaster.hu )))
> 
> -----------------------------------------
>           elektro[-flame|-etc]
> 

Végleges lézeres szőrtelenítés:jún. 30-ig most mindkét hónalj kezelése csak 79 000 Ft! Klikk ide a részleteketért!
http://www.webdesign.hu/aesthetica/flash_microsite/?id=8;p_code=2029



More information about the Elektro mailing list