Fórum témák
» Több friss téma |
WinAVR / GCC alapszabályok: 1. Ha ISR-ben használsz globális változót, az legyen "volatile" 2. Soha ne érjen véget a main() függvény 3. UART/USART hibák 99,9% a rossz órajel miatt van 4. Kerüld el a -O0 optimalizációs beállítást minden áron 5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás 6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et Bővebben: AVR-libc FAQ
Tegyük.
Elkezdtem a for-t írni de egy sor után töröltem azt a részt mert nem akartam regényeket írni -nomeg nem is tudom rendesen elmagyarázni csak élőszóban gép/papír-ceruza segítségével. Instant helpnek azért elment remélem.
Légy szíves arra írjál egy rövid példát,ahol azt a sok if-et megspórolod.
Miért fontos ez? Teljesen lényegtelen. Én ma megismertem egy új parancsot, nem biztos, hogy fogom használni, de jó tudni, hogy ilyen is van, és nem fogok megijedni, ha valahol találkozok vele.
Ma már begépeltem, csak menet közben kirakott a forum motor.. Szóval nagyon kellene már egy C topik ezeknek az alapvető kérdéseknek. Mert nagyon sok a nem processzor specifikus kérdés itt is és más mikrokontrolleres topikokban is.
Szerintem nem megspórolásra gondol, ingább csak futás idő csökkentésre valami ilyesmi formában:
A hozzászólás módosítva: Okt 13, 2015
Sziasztok!
Szeretném Topi által közzétett Processzoros, automata NiMH tőltő (ATtiny13)-al megépíteni Kérdésem egy cellára is jó lenne a töltő csak a "CELL_NUM" definíciót kellene 1-re javítani? A válaszokat előre is köszönöm.
Rendben. De a hozzászólásod alapján úgy tűnik, hogy eleve kötekedni akarsz
Idézet: ezért megjegyzem, hogy nem akarok senkit rábeszélni ezeknek az utasításoknak a használatára. Szóba került - javasoltam.„Elég fura tanokat hirdetsz!” Ha könnyebbé/jobbá tudod vele tenni a programod, használd. Ha nem tetszik, akkor ne használd. Az if-ek spórolása csak egy példa volt egyébként úgy használja mindenki, ahogy akarja. Ha akarja. Példának itt egy hevenyészett kód neked: A sorfeldolg() a kapott bufferben keres nem idézőjelek között szereplő byte sorozatot: Hobbi és idézőjelek közötti: Elektronika Az idézőjel lehet ' és ". Ha idézőjelek közötti Hobbi-t talál nem törődik vele, ha idézőjeleken kívüli Elektronikát - azzal sem. Ha megjegyzéshez ér a bufferben, akkor leáll (# karakter) A while ciklus után összegzi az eredményeket és visszatér. A kód számomra áttekinthető így és viszonylag kevés időt pazarol.(persze még lehet rajta finomítani, ez csak egy példaprogram, mondhatnám gömbáramkör) Próbáld ugyanezt megcsinálni break/continue nélkül. A fórum motorja nagyon sok üres sort szúrt be a kódba + sort is tört ott, ahol nincs(legalábbis előnézetben) -nem tudom miért!- így rettentően szellős lett és nagyon hosszúnak tűnik. Ezért ajánlott inkább kedvenc editorba bemásolni és úgy böngészni.
Csak előnézetben volt a sok üres sor + sortörés! Elküldés után rendben van.
Nagyon jó példa,meggyőztél. Ha sok hasonló feladat lesz AVR kapcsán,használni fogom.
Sziasztok! 89c52-vel van bárkinek tapasztalata? Programozott valaki már ilyet? Mert a fejlesztőkészlet és maga a chip sem drága. Érdekelne a véleményetek. Olcsó és sok portos mikrokontrollert keresek - ez jó is lenne, van is pár panelem, amibe illik (PLC klón, programozó) Eddig annyit tudtam csinálni, hogy a felélesztett programozót egy előre megírt (PLC-klón) chippel leteszteltem, de itt megállt a tudományom mert azt sem tudom hol az eleje és hol a vége. Nem a programozással van gondom, hanem azzal, merre induljak el. 3-féle mikrokontrollert már programozok egy ideje - ez sötét ló kicsit. Valami induló infó is jó lenne magyar nyelven. Jegyzet stb. Előre is köszönöm.
Szia! Én anno GAMF jegyzetet használtam, az tömör és jó, illetve valami német könyv fordítása jelent meg a 8051 mikrokontroller programozása (?) címmel, szép kék előlappal.
Ha eddig alap RISC cuccokat (PIC, AVR) programoztál, akkor pár napig égnek áll a hajad, de persze szokni kell. Ezek a régi cuccok még elég lassúak (1MIPS), de hatékonyak. Persze ebből is van már 100MHz/100MIPS-es változat is. STC most is gyártja marha olcsón az 1 órajeles verziót (34MHz), valami 2-400Ft/db, beépített soros boot-loader-el. MCS51 családnak nagyon nagy irodalma van, csak kicsit később léptek a sebességben / árban. Lehet, még ma is tanítják fősulin...Én vagy 10 évig nyomtam a különböző verzióit, nem volt vele gondom. De szokás kérdése...nem hitvita (!). Megpróbálom előtúrni a leírásokat, kicsit saláta, de hát ha valakinek itt meg van a dr. Madarász-féle jegyzet.
Nekem nincs.
Az meglehet, hogy olcsobb, mint az AVR, de kevesebbet is tud. Az AVR-ek kozott vannak darabok tobb RAM-mal, Flash-el ill EEPROM-mal is... ADC, I2C, extra USART, PWM, RTC... Igaz a 89C52 (89S52)-hoz hozza lehet illeszteni, de a vegere arban ugyan ott is tarthatsz, mintha egy AVRt vennel meg es meg a portok felet el is vesztetted (felhasznaltad). Egy ATMEGA32A-PU jobb valasztas lenne, szerintem. Annyi hatranya van, hogy a PLC klonoddal nem fog menni, az eltero labkiosztas miatt.
Ez sajnos éppen elég baj. Ugyanis így csak bedobnám az olcsó, kínai hardver foglalatába a saját programomat tartalmazó chipet. Készítettem chip adapterpanelt, működik is, de növeli a költségeket.
Ez az a könyv,amit wbt említ,ha rákeresel pdf-ben is megtalálod.
Szia! Játszani, kísérletezni most rendeltem kemény 1000Ft-ért (ebay, mi más...)
karos foglalatú MCS51 próbavackot, sorossal, portok "kiLEDezve", tökéletes próbaanyag. (már mert az én régi paneljeimet belepte a por/hó/pók/fecskefészek stb.) Mivel az újabbak is mind ISP-vel rendelkeznek, csak egy ISP programozót kell összedobnod. Ha nagyon érdekessen akarsz fejleszteni, nekem még van piggy-back tokozású NEC 8052-őm, na, ott minden port szabad ![]()
Hali!
Hát ez nekem az intel driver frissítése után is betart, nem fut a debug rész és marad. Pedig a windows azt írja, hogy a legfrissebb driver van a gépen. Másnak fut a Studio 7 debug rész és csak nekem van vele bajom?
Igen.
Talált is valami frissíteni valót a wifi részen és ennyi. Utána még frissítettem az Asus oldalról is, amit lehetett, de az sem segített. A windows eszközvezérlője azt állítja, hogy a legfrissebb video illesztőm van fent. Ezek után nem tudom mit lehet még frissíteni. Érdekesnek találom a problémát. Annyi öröm van azért, hogy legalább a működő 6.2 verziót nem rontotta el. Kis öröm is öröm! ![]()
Lehet,hogy a 6.2 a probléma.Én tisztán tettem fel.Fórumokon írogatnak lehetséges atmel usb driver keveredésről,hasonló hibajelenséggel.
Háááát....
Erről nem írtak a hibakód alapján. Azt nem tudom, hogy le merjem-e venni ezután a jól működő verziót. Szerintem még várakozom. Gyanítom, még jön itt egy-két javítása a 7. verziónak. Mindenesetre köszönöm a tippjeid!
Sziasztok!
GSM modult szeretnék kezelni. Bizonyos utasításokra nyilván várni kell, úgy mint az hogy felmegy hálózatra, sms küldés, gprs-re csatlakozás. Tehát nem szeretném a végtelenciklusban futtatni, mivel akkor amíg várakozik, megállítja a program futását. Profi módon hogyan lehet megcsinálni?
Készítesz egy állapotgépet (state machine). Meghatározod milyen fázisokra (állapotokra) van szükséged a GSM modul kezelése közben, majd pedig az átmenetek feltételeit a különböző fázisok között. Az ezt kezelő funkciót pedig minden egyes loop ciklusban meghívod.
Itt egy rövid példa kód: Ez egy ESP8266 modul inicializálását végzi. (A _timerGeneral egy időzítőmegszakításban 10ms-nként csökkentett változó) Használata valójában egy főbb állapotgép egyetlen fázisában történik (egymásba ágyazhatók és így jobban átláthatóak bonyolultabb feladatok). 0. fázis: Először beállítja a serial port alapértelmezett sebességét és engedélyezi a modult. 1. fázis: Ezután megvárja, amíg a modul jelzi, hogy felállt a rendszere. 2. fázis: Kikapcsolja az echo-t 3. fázis: Megvárja, amíg az eszköz kész a parancsfogadásra majd még egyszer elküldi a parancsot, itt már ellenőrzi majd, hogy rendes választ kapott-e vissza (a válaszokat kezelő megszakítás kikapcsolt echo-t feltételez) 4.,6.,8. fázis: Sikeres parancsvégrehajtásra vár 5. fázis: Átállítja az eszközt az általam használni kívánt baudrate-re. 7. fázis: Teszt utasítás kiadása. 9. fázis: Eszköz sikeresen konfigurálva.
Valaki ki tudna segíteni egy Self programming példával? Lehetőleg C-ben.
Sziasztok, az mitől lehet, hogy az AVR amit használok nem indul el? Külső tápforrásról egyeltalán nem megy, az AVR égetőről elindul de csak akkor ha nyomok mondjuk egy fuse bit kiolvasást, vagy egy read signature-t, szóval valahogy kommunikálok vele az égetővel. Ha az égetőt kihuzom az USB-ből és vissza akkor ismét nem megy.
Ha bootloaderre gondolsz, akkor nézz meg egy Arduino bootloadert, a teljes program fent van, C-ben is, ASM részekkel.
Az a leg szebb az egészben hogy rádugom az égetőt, erről kapja az 5V-ot de nem megy. Nyomok egy fuse bit olvasást, vagy egy read signaturet és elindul. Ha lehuzom az égetőtés visszadugom ujranem megy. Elsirom magam.
A másik lehetőség, hogy a kvarcod nem akar berezegni, vagy rövidzárlatos a paneled, esetleg a programod induláskor azonnal megrántja a tápot, és közbelép a feszültség védelem, amitől resetel, majd ismét megrántja a tápot, ismét reset...
|
Bejelentkezés
Hirdetés |