2011-04-18T16:44:47+02:00
2011-04-23T11:46:14+02:00
2022-07-24T16:16:24+02:00
- aistvanválasza Tamas888 (10:50) részére
- 2011.04.23. 11:46
- permalink
hobbielektronika.hu-n is nézz szét, van sok mikrokontrollerekkel kapcsolatos cikk.Mutasd a teljes hozzászólást!- még itt is találtam egy jó cikket:
SmartMutasd a teljes hozzászólást! - a link, amit küldtél -> azt megértettem, kösziMutasd a teljes hozzászólást!
- texas microcontroller használok, CC2430, még annó a suliban láttam ilyent és megtetszett és most van lehetőségem használni ilyent és ki is használom ezt. a kommunikációhoz van egy rakás kód (zigbee) és azokat nézegettem.
és tényleg #define-nal van megadva az összes olyan ki bemenet, vagy kapcsoló, ami nem memóriaterületre mutat. és akkor, ahogy írtátok, a linker tudja azt kezelni.
ezeket nem láttam át, hogy hogyan történik, mert ugye a C egy magasabb nyelvként tartjuk, de beágyazott rendszerekhez meg mindenképpen alacsonyabb nyelvet várunk.
amúgy igazad van, tényleg jobb lenne az alapokat assembly-ben megcsinálni, mert ha lesz is futó kódom, nem fogom átlátni, hogy hogyan működik. de szerencsére van egy csomó tutorial a neten, meg Ti is segítettek már. amit köszönök.Mutasd a teljes hozzászólást! - analogue_guyhozzászólása
- 2011.04.21. 10:59
- permalink
Én úgy akartam írni: akár a linker oldhatja fel, akár a preprocesszor (mint ahogy itt előbb írták egy define-n keresztül) (mindkettőre láttam már példát). Sajnos nem tudok a te rendszeredről semmit se írni, mert elég keveset árultál el.
És igen nagy valószínűséggel a GPIO-d hajtja meg a LED-et, de ahogy írtam lentebb kicsivel, van még pár lehetőség, de akárhogy is a lényeg, hogy ezzel a paranccsal végül is egy SFR-ba fogsz írni (hogy pontosan melyikbe és hogy az mmit csinál az a te konkrét mikrokontrolleredtől függ).
Amúgy, ha véletlenül most kezdenél ismerkedni mikrokontrollerekkel (vagy úgy általánosságban hardverrel), akkor én se ajánlanám a C nyelvet kezdésnek.Mutasd a teljes hozzászólást!- aistvanválasza Tamas888 (16:44) részére
- 2011.04.20. 19:09
- permalink
Alapvetően a LED_1 az egy konstanst jelent, ami valahol egy #define-al valahová meg van adva, hogy hová mutasson. Mutathat pl. PORTA, 1-re. Ebből a PORTA az kb. olyan mint egy változónév, az 1 pedig azt jelenti, hogy ennek a változónak az egyes bitje. Viszont ez nem valódi memória, hanem a memóriába van leképezve a kontroller kivezetése. Ha azt írod, hogy LED_1=1, akkor a kontrollerben levő processzor gyakorlatilag a PORTA memóriacím egyes bitjét billenti egyesbe, de ez fizikailag a kontroller kivezetésének egyesbe billentését jelenti. Lábról olvasáskor ugyanez történik, csak visszafele. A belső processzor úgy olvas, mintha memóriát olvasna, csak a memória helyett a lábról jön az információ, hogy nulla vagy egyes szinten van. Memory-mapped I/O - Wikipedia, the free encyclopedia
Egyébként nem biztos, hogy a C nyelv a jó választás az ismerkedésre, mert sokmindent elfed, amit kezdeti időkben jó lenne kiizzadni és ezáltal megérteni. C nyelv jól fog jönni később, amikor már nem az ismerkedés lesz a fő téma, hanem valamilyen konkrét feladat megoldása.Mutasd a teljes hozzászólást!- Köszi, neki is állok.Mutasd a teljes hozzászólást!
- **G**válasza Tamas888 (08:47) részére
- 2011.04.20. 09:22
- permalink
Az jó dolog, hogy ha már megvan az adatlap, főleg ha olyan sok oldalas.. Abban benne kell lennie a válasznak.
Nem kell az egészet végiglapozni, a PDF-ben általában vannak könyvjelzők. Nahh neked valami olyasmit kell keresned, hogy "I/O ports", vagy "General Digital I/O Ports".
Ezen címke alatt megkell találnod, hogy milyen regiszterekkel, hogyan lehet inicializálni és használni a portokat, blokk/idő diagram és akár kész asm/C kódrészletet is találhatsz.Mutasd a teljes hozzászólást!- köszi, hasznos info volt. mondjuk amin még elgondolkoztam az az utolsó két sorod (amit itt most nem látok), hogy az adott IO lábat és a változót azt a linker köti össze? azaz, ha megadja a linkernek, hogy L az az egyik láb, akkor L=1 esetén feszt tettem a lábra? ezt nem tudtam a kódból kibogarászni. valamint nézem a doksikat, mert a texas-os cuccokhoz van vagy 1000 oldal, és hiába néztem át a felét, vagy hülye vagyok, vagy a másik felében van.
KösziMutasd a teljes hozzászólást! - analogue_guyhozzászólása
- 2011.04.19. 18:25
- permalink
Szeva!
Ha arra vagy kíváncsi, hogy a hardverben mi történik, akkor:
legegyszerűbb esetben egy digitális IO-ra rá van kötve a LED (általában egy soros ellenálláson keresztül a tápfeszültségre vagy éppen földre). Ekkor elég csak ezzel a digitális IO-val logikai 1-et hajtani vagy 0-t hajtani, attól függően, hogy van bekötve a LED.
Bizonyos LED-eknél (vagy ha a fényerőt akarják vezérelni), akkor PWM-el is hajthatják.
Az is lehet, hogy a digitális GPIO-d egy külső tranzisztort hajt.
Ha az adott LED-nek fontos, hogy konstans áramot lásson, akkor áramforrással is lehet hajtani (általában ilyenkor egy áramtükör van a kimeneti pin előtt és ezt lehet ki be kapcsolni). Ilyenkor meg lehet spórolni az ellenállást, mert az áram korlátozva van.
Komolyabb teljesítmény LED-ek esetén találkozhatsz kapcsoló üzemű konverterrel is.
Szóval elég sokféle módon meg lehet hajtani egy LED-et, attól függően, hogy milyen a mikrokontrollered és épp milyen a LED-ed (amikről nem sokat írtál).
A LED_1 meg valószínűleg egy SFR címére mutat és elég sokféleképpen lehet definiálni. Lehet, hogy a preprocesszor definiálja, lehet hogy a linker.
Ha függvény lenne, akkor szvsz máshogy kellene hívni.
Üdv.
Mutasd a teljes hozzászólást!- Sziasztok
Egy mikrokontrollert programozgatok C nyelven. Van hozzá mintakódom és úgy ahogy megértettem is, hogy hogyan tudom használni (pl. ledek bekapcsolása stb.). Ami gondot okoz, hogy a mögöttes dolgokat is meglássam. Hogyan gyullad ki a led olyasmiből, hogy
LED_1 = 1
látom magam elött a microcontroller blokkdiagrammját és kb. azt is, hogy valamelyik lábára gondolom a LED van kötve, de nem tudom, hogy hogyan is működi a háttérben az egész. néztem a kódot és volt asm függvény, de hogy mi az... esetleg fordítófüggő lehet?
több eszközöm is van és, honnan tudja a fordító, hogy éppen melyiken mennyi led van. segítsetek, ne maradjak tudatlan
köszikeMutasd a teljes hozzászólást!