PIC casova konstanta 1 sec

andrej jancura hw_aj@zoznam.sk
Úterý Červen 26 09:34:10 CEST 2007


Ahoj chlape,

> Chlapi prosiiiiiiim.....kdyz zacnu uvazovat moc se potim a boli me hlava
> ;-)
> 
> 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
> 

ja by som to skusil takto:

unsigned int timeticks = 0x0004;

void interrupt() {
   DBG_PIN = 1;
   if (timeticks-- == 0)
      timeticks = 4;           // 4x0,25ms = 1ms
   INTCON = 0x20;	       // Set T0IE, clear T0IF
   DBG_PIN = 0;
}

Takze na osciloskope budeme mat 3 kratke pulzy a 1 dlhsi s periodou 0,25ms.
Pokial Ti toto nebude chodit nema zmysel robit dalej.

> 
> main()
{
   OPTION_REG = 0x00;

   TMR0 = 0;
   timeticks = 0x0004;

   INTCON = 0xA0;	       // Enable TMRO interrupt

> jednu sekundu odchytnu jako
> if (timeticks>(sekundaticks+4000)) {//dekunda
>    sekundaticks=timeticks;

tuto genialnu konstrukciu budeme riesit az Ti bude chodit ta 1ms. Ale mozno
na to prides aj sam, kde mas chybu. Zatial Ti poradim len tolko, ze budes
musiet pouzit di() a ei() a trochu porozmyslat...

A.



--- reklama -----------------------------------------------------
Stiahni si hudbu úplne legálne!
http://hudba.zoznam.sk/



Další informace o konferenci Hw-list