Nastavení bitu na výstupu + Nastavení PWM

Ahoj, píšu program, který má ovládat pic18F252.

Abych vysvětlil co má dělat: Pomocí HW Rx přijme 8bit hodnotu ve tvaru:
XZOOOCCC (např 10000101)
Z → Určuje co bude PIC dělat bud nastaví výstup na nějakém pinu na RB nebo změní nastavení PWM
-CCC Pokud je Z v log. 0 vybre se pin na portB podle ccc (011 → RB3, 000->RB0) a nastaví mu hodnotu podle X, tudíš 10000011-nastaví na RB3 výstup log. 1. //00000011 - nastaví RB3 do log. 0.

pokud je Z v 1 má se změnit šířková modulace u PWM (jedná se o ovládání stejnosměrchých motorů - rychlost u autíčka) a ta se bude měnit podle přijatých bitů OOOCCC…

Něco jsem napsal ale s PICem dělám poprve a v Cčku taky programuju picy prvně.

v setPin() nevím, jak vybrat daný pin a nastavit ho? napadlo mě 8x pod sebe podmínku ale to je podle mě moc náročný?

dále bych prosil někoho kdo by mi trošku popsal pwm, nějak nechápu nastavení a to
SetOutputPWM1 (SINGLE_OUT, PWM_MODE_1); //co je single_out, mody atpd… kuju
OpenPWM1(0xFF);
SetDCPWM1(0);
Co k čemu je z dokumentace to nějak nechápu… Dále nechápu jestli tu modulaci budu mít na nějakém výstupu? Pro mě by bylo nejlepší, kdybych měl přímo výstup na nějakém výstupu na PORTC (kromě RC6 a RC6 ty potřebuju na UART)…

Díky za rady
Viz příloha

:arrow_right: administrator: příspěvek byl upraven
Vymazána duplicitní příloha.
sw.txt (1.13 KB)

Myslím že něco podobného se řeší zde. Tak se tam podívej.