V čem programuješ PICy?

Odpovědět
Uživatelský avatar
fulda
Příspěvky: 1359
Registrován: 04 led 2016, 17:18

V čem programuješ PICy?

Příspěvek od fulda »

Dex píše: 25 črc 2019, 18:47 V čem to programuješ ty? ;) A jsou k dispozici knihovny na základní věci? Tohle je asi na jinou diskuzi, ale budu si o tom muset něco načíst, protože doba asi dost pokročila :D
Já jedu dvě hlavní linie - to co je extra malé (baseline a midrange - PIC10* - PIC16*) programuju přímo v makro asambleru. To co je větší, tak programuji v Microchip XC8.
Co se týká knihoven - samotné IDE má systém pluginů, které umožňují vytvářet části kódu. Například MCC = MPLAB Code Configurátor - naklikáš si jeké chceš používat periferie a jakým způsobem a ono ti to vyhodí kostru programu, která má inicializace, správné obsluhy přerušení pro daná zařízení a tak. Pak existuje něco, co se jmenuje MLA = Microchip Libraries for Applications. To je sada knihoven, které řeší různé základní problémy (USB, TCP/IP, ...). Některé mají dost debilní licence (USB CDC jen pro nekomerční použití), takže k nim existují různé alternativní klony.

Na PICech je trochu zajímavý přístup k hardware. Velmi oblíbenou (alespoň u mne) komponentou jsou CLC a PPS. CLC je miniaturní hradlové pole o několika jednotkách buněk, které ti umožní různě zřetězit jiné periferie do sebe, takže celou řadu věcí uděláš hardwarem místo softu. (například měření servo pulzu, si naskládáš tak, že při náběžné hraně vyresetuješ time, dáš mu enable; při sestupné hraně zastavíš timer a uděláš interrupt; takže každý interrupt dostane rovnou číslo vyjadřující délku pulzu, bez potřeby něco vyhodnocovat). PPS je vlastnost, kdy si libovolně přiřazuješ periferie k vývodům. Prostě chceš aby sériový port měl RX na pinu 1 a TX na pinu 2, tak dáš do registru SerialRXPPS=1 a SerialTXPPS=2. Když se ti v půlce běhu kódu změní potřeba, tak přiřadíš jiná čísla a port je jinde. To je užitečné třeba pro boot loader - při programování je sériovka tady, ale při běhu programu je jinde.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Odpovědět