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