Dalsi z mych zahad s PICy

HW CNCnet.info hwnews@cncnet.info
Pondělí Listopad 19 00:38:19 CET 2007


Zkousim si ted trochu hrat s 18tkovou radou PICu konkretne 18F2220 a 
zkoumam CCP moduly.

Chtel jsem synchronne generovat stejny prubeh pomoci tabulky v pameti s 
tim, ze budu prepisovat hodnoty registru nastavujici duty PWM. Neco je, 
ale podivneho nebot mi jedou ty PWMky posunute o 90st (kdyz kreslim 
napr. sinus).

Je to trivialni kus kodu:

   repeat
     fazeA:=fazeA+mode;
     fazeB:=fazeB+mode;
     temp1:=sinusLSB[fazeA];
     temp2:=sinusMSB[fazeA];

     CCP2CON:=temp1;
     CCPR2L:=temp2;
     CCP1CON:=temp1;
     CCPR1L:=temp2;

     Delay_ms(100);
   until false;

ty tabulky jsou dve v jedne jsou hodnoty pro CCPRxL a v druhe pro 
CCPxCON s tim ze dolni ctyri bity jsou stale 1111.

Co jsem si zatim vyzkoumal tak neco divneho je v okamziku kdy zapisu do 
CCP1CON. Bylo mi totiz divne, ze PWM2 po resetu nabiha pekne od nuly 
(tak ta tabulka zacina) a PWM1 se rozsviti naplno. Kdyz ten registr 
CCP1CON neprepisuju rozbihaji se oba vystupy od nuly (jen jde ten PWM1 
hrubeji coz je jasne kdyz mu chybi dole 2 bity). Pokud to necham tak jak 
to je viz kod vyse tak to jede plynule, ale stridave.

Nevite nekdo v cem muze byt problem?

-- 
Radek Vicek
======================================================================
http://www.cncnet.info - problematika CNC a automatizace
http://www.jakjevenku.info - webová meteostanice



Další informace o konferenci Hw-list