x51..blikani LED

Jan Waclawek wek@evona.sk
Pondělí Červen 12 11:04:18 CEST 2006


lubos melichar wrote:
> muj prvni program s x51, pouze blikani jedne led..preruseni po 1s.
> 
> *void main( void )
> { EA  = 0;
>   ET2 = 1;           
>   TL2 = RCAP2L = LOBYTE( -15360 );  // 0.01s = (12/22.1184MHz) * 18432
>   TH2 = RCAP2H = HIBYTE( -15360 );  // 0.01s = (12/18.4320MHz) * 15360
>   T2MOD = 0x00;
>   T2CON = 0x04;
>   EA    = 1;
>  
>    while(1){}
> }
> 
> static void Reload_Timer2_ISR(void) interrupt 5 using 3  
> { static unsigned i = 100;
> 
>   if(!--i)
>   { P1_3=~P1_3;
>      i = LDT;}
>   TF2 = 0;
> }*
> 
> to funguje naprosto ok
> 
> zkusil sem malou obmenu a preruseni zmenil
> 
> *static void Reload_Timer2_ISR(void) interrupt 5 using 3  
> { static unsigned i = 100;
> 
>   if(!--i)                  
>   { v_jednotky++;          //v_jednotky je promenna typu CHAR
>      P1=v_jednotky;
>      i = LDT;
>   }*
> 
> v simulatoru to je ok, ale v realu mi to blika odhadem po 2s a ne po 1s 
> jak chci..kde sem udelal chybu??

Nie som C a neviem co je LDT, ale ak LDT=100, tak to je klasicky problem 
medzi klavesnicou a stolickou - toggle je po 1 s co znamena ze cely 
cyklus bliknutia je 2s.

Ak nie, tak pardon.

wek



Další informace o konferenci Hw-list