Dobrý den,
podařilo se mi sehnat demo kit od Freesace s čipem MC9S08QD4, nainstaloval jsem CodeWarrior 6.3 a začínám si hrát. Nicméně moje poslední práce s programováním MPC byla se Z80…(Např. počítače Sinclair Spectrum kdo pamatuje). Byl by někdo ochoten pomoci v začátcích? Jak principiálně rosvítit diodu na desce, obsluha spinačů, jak ošetřit AD převodník s potenciometrem, prostě základ… Pokud by byl někdo ochoten pomoct, prosím pošlete mi mail na odstraněno
administrator: přejmenováno z "Freescale DEMO9S08QD4"
administrator: příspěvek byl upraven
Vymazal jsem emailovou adresu. Není zakázáno zveřejňovat kontaktní údaje, je zakázáno žádat o soukromou pomoc, kterou nemohou využít ostatní čtenáři fóra.
Zdarec,
to je dost malej procesor Nevím, jesli tu narazíš na uživatele freescale (na školách se to obvykle neučí, takže nejspíš někdo se zkušenostmi z práce).
Nicméně obecně je nutné nejdříve nakonvigurovat pin, který chceš použít, jako výstup a pak na něho zapsat hodnotu (nebo naopak, to záleží na aplikaci - třeba z bezpečnostních důvodů).
Na str.69 jsou I/o registry. Ve tvém případě registr PTADD určuje směr “nožiček” mcu. Po zápisu 1 do některého bitu se nastaví pin procesoru jako výstup.
PTAD je datový registr. Zapíšeš-li do něho hodnotu na pozici, kterou jsi určil v PTADD jako výstup, objeví se tato hodnota na pinu mcu.
Další registry pro řízení portu jsou PTAPE (pullup enable), PTASE(slew rate control) a PTADS(drive strength). Bez nich by se měl ovšem pro rozsvícení ledky obejít. Kdyby port ledku neutáhl, zapiš do PTADS na odpovídající pozici “1”.
Procesor má instrukce “BSET n, opr8a” a “BCLR”. 1. operand je manipulovaný bit (0-7), druhý pak místo v paměti. Snad tam půjde dát i jméno registru (pokud do programu vložíš definiční soubor).
Kdyby se nedařilo, můžeš zkusit místo názvů použít přimo adresy.
str.35:
PTAD 0x0000
PTADD 0x0001
následující registry jsou mimo rozsah přímého adresování, takže BSET a BCLR ti tam nepůjdou.
PTAPE 0x1840
PTASE 0x1841
PTADS 0x1842
Nějaká ledka na tom kitu je?
Není u toho kitu i nějaký příklad? s ním by se začínalo o mnoho lépe
Na desce jsou dva spinače, jedna LED a potenciometr, který snad lze využít pro spojení s AD převodníkem. Můžu v případě potřeby poslat schema zapojení (je to přes odpory připojení na +5V). Je tam i sample kód v C (pro CodeWarrior), který přes spinače ovládá LED (buiď bliká nebu vypnout/zapnout). Ale moc chytrý z toho nejsem, tedy spíš mi není jasné jak se pracuje s nastavením registrů a nastavení směru a použití jednotlivých pinů.
Nicméně bych se zaptal, je něco blbuvzdornějšího třeba od jiných výrobců? Chtěl jsem to pochopit abych případně ubastlil jednotku s tlakovým snímačem a LCD displejem pro měření malého přetlaku (do 2000 Pa) a teploty, ale tohle je asi nad mé síly. Tedy pokud mi někdo prakticky neukáže jak na to… pak už se odpíchnu dál.
Zkus se podívat po netu třeba na stránku forums.freescale.com/freescale/b … ead.id=581 by ti mohl trochu pomoci je to sice pro mikrokontrolér MC9S08QG8 hlavní rozdíl mezi nima je ve velikosti paměti /4Kbytes FLASH nebo 8Kbytes Flash/ ale to ti asi bude zatím jedno Dole na té stránce je i odkaz na pár ukázkových programů. Ovládání portů je v programu GPIO.
dussed: Pokud trochu umíš C, bude to jednodušší, protože se za tebe o mnoho věcí postará . Kdyžtak sem ten příklad můžeš vložit a pokusím se ho trochu okomentovat. Architekturu těchto mcu sice neznám (na první pohled mi vzdáleně připomíná x51), ale u základního kódu v C to nebývá nezbytné.
Pokud by ses s freescale neskamarádil, tak nás tu je pár, co mohou poradit s PIC, AVR a x51. Když ale máš kit, byla by škoda ho nevyužít. Řekl bych, že při práci v C je celkem jedno, na kterém typu mcu pracuješ. Při případném přechodu jinam budeš moci získané zkušenosti bez větších problémů využít. Co už je závislé na architektuře je efektivita vytvořeného kódu, ale to teď není důležité.