Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
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
Lapozás: OK   833 / 837
(#) vargham válasza benjami hozzászólására (») Feb 12, 2023 /
 
Ezt már javasoltuk többen is, de valamiért nem érdekelte a kollégát.
(#) benjami válasza vargham hozzászólására (») Feb 12, 2023 /
 
Tényleg. Az előző oldalon te is leírtad neki szinte ugyanezt.
(#) Tambi válasza benjami hozzászólására (») Feb 12, 2023 /
 
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
(#) Pethical válasza Tambi hozzászólására (») Feb 12, 2023 / 1
 
Örülök, hogy lett megoldás.
Az STM32-t pont ugyanúgy tudod nyúzni Arduinoval, mint az AVR-eket, csak azért írom le, hogy, ha erre téved valaki aki boldogul Arduinoval, az ne riadjon meg az STM32, ESP32 alapú cuccoktól, azzal is menni fog.
(#) asch válasza Tambi hozzászólására (») Feb 16, 2023 /
 
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:
  1. uint16_t gyujto=0;
  2. for(int i = 0; i < 11; i++)            //11 lábat fogunk beolvasni
  3. {
  4.   int pin = i+2;                       //a NANO "pin" D2-től D12-ig lábai a 3x74191 a 20MHz-es BIN fel-le számlálók 4+4+3db kimenetére csatlakoznak, ezeket olvassuk
  5.   pinMode(pin, INPUT_PULLUP);            //zavarszűrés okán belső ellenállással felhúzzuk a bemeneteket
  6.   uint16_t v=digitalRead(pin)==HIGH?b10000000000:0;          //kiolvassuk az aktuális bemenetet egyből a 11.bitre
  7.   gyujto>>=1;   // Eggyel lejjebb shifteljuk amit eddig gyujtottunk - így a végére minden pont a helyére fog kerülni - az első körben NOOP
  8.   gyujto|=v; // Beállítjuk a legfelső, azaz a 11. bitet a most beolvasott érték szerint
  9. }
  10. // gyujto-ben az alsó 11 biten vannak a beolvasott bitek
A hozzászólás módosítva: Feb 16, 2023
(#) antiktelefon hozzászólása Feb 20, 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 Tudok más icket vagy BGA forrasztást vagy pénztadni érte, csak hogy ne álljon itt egy hónapot a cucc.
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.
(#) zombee hozzászólása Feb 24, 2023 /
 
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.
(#) pipi válasza zombee hozzászólására (») Feb 24, 2023 /
 
lehet
(#) majkimester válasza antiktelefon hozzászólására (») Feb 25, 2023 /
 
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.
(#) antiktelefon válasza majkimester hozzászólására (») Márc 6, 2023 /
 
Hú, még nem, egy úton van ázsiából, de 1+ hónap. Írok privátot.
(#) alita hozzászólása Márc 8, 2023 /
 
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.
(#) asch válasza alita hozzászólására (») Márc 8, 2023 /
 
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
(#) alita válasza asch hozzászólására (») 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 !!
(#) pipi válasza alita hozzászólására (») Márc 8, 2023 /
 
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...
(#) Hp41C válasza pipi hozzászólására (») Márc 8, 2023 /
 
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
(#) alita válasza Hp41C hozzászólására (») 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.
(#) alita hozzászólása Márc 9, 2023 /
 
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.
(#) Hp41C válasza alita hozzászólására (») Márc 9, 2023 /
 
Melyik az a sor?
Töröltem a csupa FF sorokat a program végéről.
(#) alita válasza Hp41C hozzászólására (») Márc 9, 2023 /
 
É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.
(#) kapu48 válasza alita hozzászólására (») Márc 9, 2023 / 1
 
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
(#) Hp41C válasza kapu48 hozzászólására (») 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
(#) alita válasza Hp41C hozzászólására (») Márc 10, 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
(#) pipi válasza alita hozzászólására (») Márc 10, 2023 /
 
És mi volt a megfejtés?
(#) alita válasza pipi hozzászólására (») Márc 10, 2023 /
 
Nem én fejtettem meg hanem HP41C a hex-k fenn vannak.
(#) tiko77 hozzászólása Márc 22, 2023 /
 
Üdvözlet mindenkinek!
Firmware égetés közben hibáztam egy Atmega328P programozásakor, sikerült kizárnom magam a chipből. Progisp programmal követtem el usbasp programozón keresztül. Az Atmega működik (futtatja a programot) de ISP-n kereszül nem érem el. Ez így most kuka vagy pl. arduino uno-val ujraprogramozható?
Köszönöm!
(#) vargham válasza tiko77 hozzászólására (») Márc 22, 2023 /
 
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.
(#) robis01 válasza tiko77 hozzászólására (») Márc 23, 2023 / 1
 
Arduino-val újra programozhatóvá lehet tenni Arduino HV
(#) kalmi.kalmi válasza tiko77 hozzászólására (») Márc 23, 2023 /
 
Esetleg egy külső oszcillátor felébresztheti.
(#) sneci1977 hozzászólása Máj 21, 2023 /
 
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!...
(#) NickE válasza sneci1977 hozzászólására (») Jún 3, 2023 /
 
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.
Következő: »»   833 / 837
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem