Bankování – u 8bit PIC
…… v dnešní době, kdy existují kvalitní kompilátory C i na řadu PIC16F, nemusí bankování znamenat výraznější problém, programátor v C se s ním prakticky nesetká.
…… navíc tahle architektura (i právě díky možnosti bankování) nabízí i některé výhodné módy adresování a práci s pamětí (v datasheetu jsou uvedeny, bohužel se téměř nepoužívají – nejspíš proto, že jejich použití není úplně triviální a informace jsou jenom v angličtině). Už jenom z podstaty bankování lze využít jednu banku jako samostatnou paměť a vytvořit tak kruhový registr (adresa 0xFF se inkrementací změní na 0x00 – navíc inkrementace může být v některých módech adresování automatická), to všechno šetří strojový čas procesoru…….možná podobné věci umí i AVR, to že nebankuje nemusí bý limitem – např. dsPIC33 umožňuje vytvořit kruhový registr (FIFO paměť) téměř v jakékoliv části paměti s libovolnou délkou.
1 instrukční cyklus trvá 4 takty procesoru – opět 8bit PIC
…… na druhou stranu procesory se dají taktovat na vyšší frekvence než AVR apod – takže konečný výkon procesoru je srovnatelný. Otázkou může být vyzařování – samotné procesory jsou většinou dobře odstíněné – tento problém se spíš týká krystalu, i ten může být použit shodný, pokud je signál násoben v PLL, samozřejmě se zvýší spotřeba – ale spousta návrhů procesorových systémů jde dnes tímto směrem -> co nejnižší frekvence krystalu a pak to doženu pomocí PLL -> pak nebudu tolik vyzařovat na vysokých frekvencích, samozřejmě při použití interního krystalu tento problém odpadá….
Tímto nechci polemizovat o tom, který procesor je lepší, jestli PIC16F nebo ATmega8, to nechám na jiných……. také mi občas vadí argumentace bankováním a FOSC/4 v neprospěch PIC16F, přičemž daný člověk o těchto dvou věcech zase až tak moc neví….
Každopádně programovat v assembleru pro ATmegu8 je lehčí než pro PIC16F, takže bych volil ATmegu8, pokud bych chtěl programovat v C, musel bych se rozhodovat podle dalších vlastnostech obou procesorů.
Jinak bych sáhnul po PIC24FxxKAxx, nabízí o hodně více muziky za méně peněz a není komplikovanější, spíše naopak. Samozřejmě, že literatura existuje pouze v angličtině, ale s tím se prostě musí počítat, je to nový kousek a čekat 10 let než se něco objeví v češtině, jestli vůbec, není moc rozumné . . . navíc existuje spousta ukázkových projektů, které učení se s procesorem dále značně ulehčí . . . takže blikání LED je možné rozběhat opravdu do pár jednotek max desítek minut.
Cortex M3 je dobrý procesor (s ukázkovými projekty jeho první naprogramování opět není moc náročné, i když rozdíl tam je), zvláště jeho „lowendové“ varianty s nízkopinovými pouzdry, malou datovou a programovou pamětí (proto za nízkou cenu) nemají protějšek v rodině PIC32……… otázka je, jak často potřebuji výkonný procesor s velmi malou pamětí……… vybavenějším Cortexům již přímo konkurují PIC32 …… a je opět otázkou co zvolit (sám jsem např. testoval výpočetní aplikaci, kde je PIC32 asi o 20% rychlejší než Cortex, konkrétně šlo o typ STM32F105RBT6)…………ale zase by se i zde dalo debatovat hodiny a hodiny
Ještě k vybavenější procesorům – obsáhlejším datasheetům
Tohle by zase nemělo začínajícího uživatele vyděsit, většinou jednotek/periférií/atd, které procesor obsahuje a tak zvyšují obsáhlost datasheetů, se není nutné zabývat, pokud nechci, jinými slovy tyto jednotky jsou většinou deaktivované a není nutné je jakkoliv programovat, abych např. blikal LED