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
Ezt már javasoltuk többen is, de valamiért nem érdekelte a kollégát.
![]()
Tényleg. Az előző oldalon te is leírtad neki szinte ugyanezt.
![]()
Köszönöm szépen kedves Barátaim, természetesen rögtön megnéztem a HeStore-ban az STM32-t. Nagyszerű, csodálatos, kolosszális, sőt piramidális, ráadásul erre (is) találták ki, hiszen alapból képes mind a négy számba jöhető élet vizsgálni "irdatlan" sebességgel; ez biztos nem hagyna ki egy impulzust sem, sőt még rezgés gyanánt hozzá sem adna... és még az ára is szolid.
Nekem már csak két dolgom hiányzik a "projekt"-hez; a TUDÁS, meg a TEHETSÉG... Az stm32 "adatlapja" (inkább adatkönyve) 1137(!) oldal! Angolul! Ha ehhez hozzávesszük, hogy negyvenhároméve BASIC-ben lyukkártyával tanultam a számítástechnikát a főiskolán úgy, hogy a legközelebbi és egyetlen VIDEOTON R10-es számítógép is nyolcvan km-re volt, akkor bizonyára megértitek, hogy miért próbálom "megkerülni", és hátulról ledöfni a problémát. Asch kedves fórumtársunk nagyon méltányos feltételekkel felajánlotta teljeskörű segítségét. Biztos vagyok benne, hogy ha tízévig csinálom, akkor sem lesz olyan jó, mint az övé. Ennek csak egyetlen baja lenne, hogy "NEM ÉN CSINÁLTAM"! Ha a segítségetekkel mondjuk ESP32-vel valahogy összehozzuk, akkor sem (csak) én csináltam ugyan, de legalább van benne munkám (tart ameddig tart, és kerül amibe kerül...) Köszönettel derűs napot kíván; Tambi
Megnéztem a kódot, sok probléma van vele:
* A digitalRead a doksi szerint HIGH vagy LOW értéket vesz fel. Ezek konstansok, amiknek az értéke gondolom 1 és 0, de nem biztos, hogy minden platformon ez lesz. Ezért így kell használni az esetedben korrektül: (pin_d==HIGH?1:0). Ez persze kukacoskodás, mert most itt nem okoz hibát. * Az összegzést float-ba, tehát lebegőpontos számba teszed. A pow szintén lebegőpontos. Egyrészt nagyon lassú (kisebb baj), másrészt pontatlan - ez a baj. Amikor visszaalakítod int-té, akkor lefelé kerekítés van. Így ha lefelé kicsit pontatlan a pow, akkor a kerekítés után 0 lesz 1 helyett. Szerintem ez a hiba valódi oka, egybevág az elmélet a hibajelenséggel. Ha csak nem muszáj, jobb nem használni float-ot mikrovezérlőn. A bitek összegzésére egy helyes megoldás, ha a belovasott bitet bitenkénti vagy művelettel írjuk be egy gyűjtő változóba és utána shiftelgetjük:
A hozzászólás módosítva: Feb 16, 2023
Üdv!
Sikerült még kiolvasni a halott távot végül, értelmes szerű tartalma van flashnek és eepromnak is, nem FF. Soic at90s2313 hol kapható, vagy melyik alis/ebayes bolt megbízható, nem szemetet küld? Esetleg valaki nem akar megszánni egy darabbal ![]() A másik ugyanilyen-a hibás- panelen 1200-as van, gondolom az nem jó a 2313-as dumphoz, de teszteltem a jó 2313-mal megy az is.
Sziasztok!
SRAM-ot illesztenék ATMega128-hoz. Kérdésem, hogy az adat, illetve címző lábakat lehet-e egymással cserélgetni, elsősorban layout optimalizálás érdekében? Kb ilyenre gondolok, mint a képeken.
Sikerült szerezni már 2313-at?
Nekem van itt egy darab bontott AT90S2313-10SI. Ezt felajánlom, ha megfelel. 0322-es date kód, nem mai darab.
Hú, még nem, egy úton van ázsiából, de 1+ hónap. Írok privátot.
Szervusztok !
Tanácsot kérek egy Atmega 8A programozásához.A mellékelt fájl programozása nem sikerült többszöri próbálkozásra sem.Végül megnyitottam a fájlt és észre vettem,hogy kb.az 1/3-nál egyik sor nem teljes,és ennél a sornál megáll a programozás. Lehetséges-e,hogy e-miatt hibás a fájl,és ha igen van-e megoldás? Köszönöm a segítő szándékokat.
Segítene, ha beírnád, hogy milyen paranccsal próbálkozol és hogy mit ír ki! A hex hogyan készült? Újra lehet fordítani?
A fél sor szerintem elvileg lehet jó. Ha jól emlékszem a sor elején a szám azt jelenti, hogy hány bájt van a sorban. Így ez a sor nem tűnik csonkának. Az más kérdés, hogy mi az oka. Az avrdude-ban találtam már hibát, az is lehet hogy azzal állsz szemben. Bizonyos esetekben túl kicsi buffert foglal, és a kód buffer overflow-t okoz belül. Talán akkor lehet ilyen, ha a teljes programmemóriát kihasználjuk, ami Atmega8 esetén nem nehéz, ez a program például majdnem teletölti a csipet. (Mielőtt valaki megróna: egy darabig kerestem, hogy hová kellene riportolni a hibát, de nem találtam meg.) A hozzászólás módosítva: Márc 8, 2023
A hex fájl-t az internetről töltöttem le.Mikrocsip studió 7,AVR studió 4.19,és Arduinó nanó-val
próbálkoztam.Eddig nem volt problémám,már jó pár AVR töltésen vagyok túl,bár nem vagyok programozó tudással bíró egyén.De egy készen kapott fájlal nem volt eddig problémám. Az Arduino-val való próbálkozás alkalmával derült ki,hogy a csonka sorig szépen ment a programozás,ott megállt és pirossal jelezte a sort.Ezt párszor megismételtem,de ugyanaz történt.Ebből gondoltam,hogy ott a probléma. A probléma azért fájó,mert előbb építettem meg az áramkört.Újból egy leckével több !!
Hibaüzenet van?
Próbaképp (nyilván nem jó, csak tesztként) szövegszerkesztővel töröld ki azt a rövidebb sort, akkor végigmegy-e. Ha igen akkor ki kell analizálni az a sor hová mutat memóriában...
A feltöltött hex egy szabványos Intel Hex állomány. Minden sorban 16 adat byte van, kivéve ezt a sort:
:05017000008001CE1D1E Ebben csak 5 adat van, amit az 0x170 címtől kell betölteni. A következő sor a 0x176 címre töltődik, így kimarad a 0x175. Több probléma is felmerülhet: - a programozó csak 16 adat bájtot tartalmazó sorokat tud kezelni, - nem tud csak 16 -tal osztható címen kezdődő sot feldolgozni. Ki lehet pótolni a hiányzó adatot, de akkor a sort át kell alakítani: :06017000008001CE1D001D Keresni kell egy olyan programot, ami be tudja olvasni. Át lehet alakítani a hex állományt egyforma, 16 byte -os formára. Mire nem jó egy PICkit2... A hozzászólás módosítva: Márc 8, 2023
Köszönöm a segítő szándékokat!
Ahogy írtam nem vagyok egy programozó tudó.A leírtakból sok kifejezés nékem ismeretlen. Holnap a megküldött hex fájlal próbát teszek.Az eredményt megírom,jó lenne ha sikeres lenne.
A megküldött fájlt felakartam tölteni,de sajnos ismét megállt.A biteket szépen feltöltötte,de az utánuk következő 18-k sornál az FFFFF-s-nél hiba.
Hiba:exit status 1 exponent has no digits. Megpróbáltam törölni az F-s sorokat egyenként,de a hiba folytatódott a következő soroknál. Azt hiszem ebből sajnos nem lesz programozás. Köszönöm a segítő szándékokat.
Melyik az a sor?
Töröltem a csupa FF sorokat a program végéről.
Én is töröltem egyesével az F sorokat,de mint írtam a következőket jelölte mindig hibásnak.
A végén lévő befejező 000001FF sort vissza vittem a megmaradt sor végére. Ezután elkezdte a megmaradt sor egyikét hibásnak jelölni.
A hexa kódba nem lehet így bele javítgatni, ha megsérült akkor keresni kel a forráskódot.
És újra lefordítani Bővebben: Link Minden sor végén ellenőrző összeg van, amit az adót sorból számítanak. Ha bele javítgatsz akkor már nem stimmel az ellenőrzés, és mindig hibát fog jelezi a feltöltő. ![]() Bővebben: Link A hozzászólás módosítva: Márc 9, 2023
Teljes sort lehet törölni, ami csak 0xFF -eket tartalmaz hiszen a törölt kontrollerben minden címen 0xFF van.
Jó lenne pontosan tudni a hiba okát, helyét. Egy kép többet mond ezer szónál. A hozzászólás módosítva: Márc 9, 2023
Szervusz !
Sikerült végre ma a programozása.A zöld csík szépen végig futott,és a kiolvasás is jó volt. Hogy mennyire hasznos,azt majd a teljes készülék,élesben próbálása mondja meg. Még egyszer köszönöm a segítségedet. Üdvözlettel:Attila
Nem én fejtettem meg hanem HP41C a hex-k fenn vannak.
Üdvözlet mindenkinek!
Firmware égetés közben hibáztam egy Atmega328P programozásakor, sikerült kizárnom magam a chipből. ![]() Köszönöm!
Attól függ, hogyan zártad ki magad. Letiltottad az ISP programozást vagy a reset lábat? Ha igen, akkor nagyfesz (12 volt) programozó kell neked, például AVR Dragon.
Arduino-val újra programozhatóvá lehet tenni Arduino HV
Esetleg egy külső oszcillátor felébresztheti.
Sziasztok!
Segítséget szeretnék kérni abban, hogy QFP44 Atmega32L és A chipeket szeretnék hvpp-vel programozni, de valamiért nem ismeri fel a chipeket. Rendelkezésre áll egy STK500 klón, egy QFP44-DIP40 adapter, és a Microchip Studio. Hogyan kellene szisztematikusan elkezdeni hogy hvpp-ben felismerje? Előre is köszönöm a segítséget!...
Eddig ATMEGA1284P procit használtam, de most csak ATMEGA1284-et kapok P nélkül. Nyugodtan betehetem helyette? Jól látom, hogy csak csekély fogyasztásbeli különbség van? A P a picopowert jelöli.
|
Bejelentkezés
Hirdetés |