Infra DO s PIC - pomoc s PWM
Moderátor: Moderátoři
Infra DO s PIC - pomoc s PWM
Zdravím, chtìl bych si postavit infrared dálkové ovl. k HIFI SONY. Potøebuju vygenerovat asi takový signál (viz obr.) Mám k tomu PIC16F877A. Jak mám napsat program? Napadlo mì jedinì dát støídu 100%, pak èasová smyèka a zmìna støídy na 0% + zase èasová smyèka.
- Přílohy
-
- S3.jpg
- (28.12 KiB) Staženo 140 x
ja by som to riesil asi takto:
1.pustit si casovac aby po 45ms vzniklo prerusenie a nastavilo priznak ramca
2. nastavit 1 a pockat 2.4ms jednoduchou sluckou cakacou
3. dat do 0 a pockat 6ms
4. dat tam 1 a podla toho ci chces odoslat 0 alebo 1 pockat dany cas (je to tam 1.2 alebo 12ms??? Lebo vyzera to vacsie ako pre 6ms a je tam napisane 1.2ms)
5. kroky 3 a 4 opakovat dany pocet bitov
6. nastavit 0 a pockat na nastavenie priznaku ramca (cize ten od posled.bitu po koniec ramca)
Tod vsio, asi tak nejak![Wink :wink:](./images/smilies/icon_wink.gif)
1.pustit si casovac aby po 45ms vzniklo prerusenie a nastavilo priznak ramca
2. nastavit 1 a pockat 2.4ms jednoduchou sluckou cakacou
3. dat do 0 a pockat 6ms
4. dat tam 1 a podla toho ci chces odoslat 0 alebo 1 pockat dany cas (je to tam 1.2 alebo 12ms??? Lebo vyzera to vacsie ako pre 6ms a je tam napisane 1.2ms)
5. kroky 3 a 4 opakovat dany pocet bitov
6. nastavit 0 a pockat na nastavenie priznaku ramca (cize ten od posled.bitu po koniec ramca)
Tod vsio, asi tak nejak
![Wink :wink:](./images/smilies/icon_wink.gif)
hmm, ja by som to PWM neriesil urcite, PWM je k niecomu inemu, nie na toto. No ako to ma v asm vyzerat je silne zavisle od pouziteho procesoru, asm viem iba pre 51ky a teraz uz pouzivam C pre AVR, takze s PIC v asm ti nehelfnem.
ALE! Ak ti to na osciloskope vyzeralo dobre, ale neslo to, tak chyba je inde!
A si si isty protokolom? Skus si kuknut orginal DO.
Naco to vlasne chces? Ak ti ide len o tom mat nieco take, tak si kup uciace DO a nauc ho rovno z orginal DO a mas. Ak to robis kvoli programovaniu tak vela zdaru![Smile :)](./images/smilies/icon_smile.gif)
ALE! Ak ti to na osciloskope vyzeralo dobre, ale neslo to, tak chyba je inde!
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
Naco to vlasne chces? Ak ti ide len o tom mat nieco take, tak si kup uciace DO a nauc ho rovno z orginal DO a mas. Ak to robis kvoli programovaniu tak vela zdaru
![Smile :)](./images/smilies/icon_smile.gif)
Na osciloskopu to vypadalo takhle divnì (obr.) Vim, že univerzál. DO stojí pár stovek, ale chci si naprogramovat vlastní ![Smile :)](./images/smilies/icon_smile.gif)
![Smile :)](./images/smilies/icon_smile.gif)
- Přílohy
-
- remote.jpg
- (26.85 KiB) Staženo 56 x
-
- remote.jpg
- (26.85 KiB) Staženo 62 x
co máš pořád s tou střídou? podle toho protokolu na obrázku jde o sériový přenos 12 bitů, kde start bit trvá 2,4 milisekund a pak jde přenos bitů u kterých log 0 je 0,6 ms mezera/0,6 ms "tečka" a log 1 je 0,66 ms mezera/1,2 ms "čárka". Střída nosné zůstává konstantní a je asi 50% (1:1). Tedy potřebuješ programový převod 12 bit slova na sériovou posloupnost a jen řídit příslušné časové smyčky. (protokol toho DO neznám, sorry).
Comu nerozumies??? Jednoducho urob to co sme sa bavili, s tym, ze ked mas mat na vystupe log 1 tak musis s vystupom kmitat medzi 0 a 1 o frekvencii nosnej vlny.
V podstate to urobis tak, ze si navrhnes oneskorovaciu slucku tak, aby pocas cakania negovala vystup podla toho aku f nosnej mas.
Dufam, ze som netreskol kravinu![Very Happy :D](./images/smilies/icon_biggrin.gif)
A ad ta tvoja PWMka, daj jej uz pokoj, teoreticky by to aj slo, ale tak to nerob. PWM sa nauc na RGB ledke racej![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)
![Wink :wink:](./images/smilies/icon_wink.gif)
Dufam, ze som netreskol kravinu
![Very Happy :D](./images/smilies/icon_biggrin.gif)
A ad ta tvoja PWMka, daj jej uz pokoj, teoreticky by to aj slo, ale tak to nerob. PWM sa nauc na RGB ledke racej
![Rolling Eyes :roll:](./images/smilies/icon_rolleyes.gif)