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   676 / 837
(#) Gj hozzászólása Jún 29, 2015 /
 
Tisztelt Fórumtársak!

Problémám akadt egy AVR Dragonnal, melyet itt vettem a HEStore-ban, de nem akarják garanciálisan javítani, mert beforrasztottam olyan csatlakozókat, melyek itt, a gyári specifikációban is szerepelnek. Írtam nekik, hogy itt is fel van tüntetve ez a fajta módosítás, de azt válaszolták, hogy elveszett és kész, hiába szerepel ott, hogy lehet.

Konkrétan ezt írták:
Idézet:
„Köszönjük megtisztelő válaszlevelét, továbbítottam azt illetékes kollégám felé, aki a következő választ adta:

" A termékben módosítás lett végrehajtva és az, hogy az Atmel oldalán példa jelzi a műveletet nem jelenti azt, hogy ilyen esetben a termék nem veszíti el a rá vonatkozó garanciát."

Ebben az esetben, így továbbra sem tudjuk a termék garanciális ügyintézését érvényesíteni.”


Kérném a segítségeteket, hogy mit lehetne tenni, hogy garanciálisan javítsanak/cseréljenek?
Előre is köszönöm!
(#) killbill válasza Max26 hozzászólására (») Jún 29, 2015 /
 
Idézet:
„while((valtozo!=1) || (valtozo!=5))”
Ezzel semmi baj nincs, kiveve, hogy ez egy vegtelen ciklus, hiszen egyszerre nem lehet 1 es 5 is ugyanannak valtozonak az erteke. Egyebkent meg a kerdes onmagaban hibas, mert nem irtad le, hogy a fordito mit mondott. Ha nem erted a hibauzenetet, akkor legalabb idezd, hatha mi ertjuk.
(#) pont válasza Gj hozzászólására (») Jún 29, 2015 /
 
Amennyiben a meghibásodásnak nincs köze, a módosításhoz lehet futni egypár kört fogyasztóvédelem, műszaki szakértő, független vizsgálóállomás, de elég sok idő soha meg nem térülő költség stb.elmegy rá. Ha tudsz angolul írj az AVR-nek 20-30 email címre, hogy mi történt veled, küldenek annyit, hogy fel se tudod használni...
(#) kapu48 válasza killbill hozzászólására (») Jún 29, 2015 /
 
Én meg úgy látom, hogy itt Vagy kapcsolat van!
Nem pedig És!
„while((valtozo!=1) || (valtozo!=5))”
(#) Hp41C válasza kapu48 hozzászólására (») Jún 29, 2015 /
 
De Morgan szerint
a „while((valtozo!=1) || (valtozo!=5))” megegyezik a „while(!((valtozo==1) && (valtozo==5))”
azaz „while (!(false))” azaz „while (true)”
(#) Max26 válasza killbill hozzászólására (») Jún 29, 2015 /
 
Elnézést, a fordító nem ír ki hibát, a 2. sor egyszerűen nem működik.
A keypad beolvasása 1-es vagy 2-es nyomógomb lenyomására van beprogramozva. Az 1.sorral működik, de nem tudom létrehozni azt a feltételt, ami 1-es vagy 5-ös nyomógombra is élne a többi nyomógombra nem.

1. sor: while((keypad<1)||(keypad>2)) //várunk amíg nem 1 v. 2. van lenyomva
2. sor: while((keypad!=1) || (keypad!=2))
A hozzászólás módosítva: Jún 29, 2015
(#) kapu48 válasza Hp41C hozzászólására (») Jún 29, 2015 /
 
A buta kérdéseire kapott válaszból tanul az ember!
(#) killbill válasza kapu48 hozzászólására (») Jún 29, 2015 /
 
Jol latod
(#) zombee válasza Gj hozzászólására (») Jún 29, 2015 /
 
Szerintem Topi lesz a Te embered, ő egy kicsit közelebb van a HE-hez és otthon van az AVR témában is. Ha mégsem akkor innen kérek elnézést.
A hozzászólás módosítva: Jún 29, 2015
(#) killbill válasza Max26 hozzászólására (») Jún 29, 2015 /
 
Idézet:
„a 2. sor egyszerűen nem működik.”
De mukodik, csak nem azt csinalja, amit te szeretnel. && kellene legyen benne es nem ||. Gondold vegig, hogy mit jelent! Ha nem 1 vagy nem 2 akkor kering onmagaban. Akarmilyen erteke van keypad-nak, a ket feltetel kozul az egyik teljesulni fog, ezert a vagy kapcsolat miatt mindig "igaz" lesz a feltetel.
A hozzászólás módosítva: Jún 29, 2015
(#) Max26 válasza killbill hozzászólására (») Jún 29, 2015 /
 
Igen, valóban jó így. Köszi.
(#) csatti2 válasza Max26 hozzászólására (») Jún 29, 2015 /
 
Lehet van jobb megoldás, de ez működik:
Ez a rész természetesen uC függő (ez itt egy ATMEGA328p-re vonatkozott):
  1. #define PORTNUM 3
  2. volatile uint8_t* PINn[PORTNUM] = { &PINB, &PINC, &PIND };

A hozzáférés az értékhez pedig:
  1. *PINn[i]
(#) Gj hozzászólása Jún 29, 2015 /
 
Üdv!

Ez a proramozó működik Windows 8.1-gyel?
A hozzászólás módosítva: Jún 29, 2015
(#) zombee válasza Gj hozzászólására (») Jún 30, 2015 /
 
Félő hogy nem fog működni mivel a driver úgy tűnik hogy saját tákolmány, azt nem szokás frissíteni újabb oprendszerre, szerintem Win7-re is csak bajosan menne fel.
(#) Max26 válasza csatti2 hozzászólására (») Júl 1, 2015 /
 
Remek, köszi!
(#) Max26 hozzászólása Júl 1, 2015 /
 
Sziasztok! Jól sejtem, hogy ezt a foglalatot direktbe köthetem az AVR lábaira bármiféle szintillesztés nélkül?Bővebben: Link
(#) Magyar Csaba válasza Max26 hozzászólására (») Júl 1, 2015 /
 
Szia!

Én ugyan pont nem ezt a verziót használtam, de az működött minden további nélkül.
Erre is rákerestem, és ezt írja: Support 5V/3.3V input.
Úgyhogy szerintem igen.
(#) Max26 hozzászólása Júl 4, 2015 /
 
Hogyan számíthatnám ki egy akkumulátor töltöttségi szintjét %-ban, (pl: 99.1%) ha az akku max töltöttségi szintje legyen 4,2V=100%, min töltöttségi szintje 2,8V=0%? Ha az ADC 10 bites, akkor 5V referencia esetén a felbontás: 5V/1024bit.
(#) Max26 válasza Magyar Csaba hozzászólására (») Júl 4, 2015 /
 
Kell level konverter, utána néztem.
(#) wbt válasza Max26 hozzászólására (») Júl 4, 2015 / 1
 
1000 értéked nehezen lesz ebben a tartományban.
4.2-2.8/(5/1024)=287 ADC lépés. 2.8V=>573, 4.2=>860.
1. lépésben levonod az 573 offset-et, akkor lesz 0-286 értéked.
Ezt megszorzod 100/287-el. Persze a "bemeneti érték < offset" dolgot le kell kezelni,
ki-ki ahogy szokta...
(#) killbill válasza Max26 hozzászólására (») Júl 4, 2015 /
 
Fuggetlenul a szamitas modjatol, nem minden akkumulator toltottsegi szintje merheto a kapocsfeszultsegbol. A legtobbnek nem linearisan csokken a feszultsege, raadasul fugghet egy csomo mastol is (hofok, akkumulator kora, terhelo aram). Persze sokszor eleg ez a modszer is, de ez is inkabb "1-5 pötty" jellegu meresre, mintsem 1 tizedes jegy pontossagu szazalekos meghatarozasra.
(#) Ricsi89 válasza killbill hozzászólására (») Júl 4, 2015 /
 
Főleg nem használható így egy lítium akku mérésére. 4,2V-ról hamar leesik kb 3,8V-ra, ott elég sokáig stagnál, majd a végén hirtelen elkezd esni a feszültsége. De itt jobban látható. Bővebben: Link
A hozzászólás módosítva: Júl 4, 2015
(#) Ricsi89 hozzászólása Júl 4, 2015 /
 
Lenne egy kérdésem. Adott egy Atmega32 proci. Ebben fut egy program, amiben van pár adat, amit áramtalanításkor eepromba kellene menteni. Viszont hogyan érdemes ezt elvégezni, milyen lehetőségek vannak erre? A mentéssel nincs gond, inkább arra lennék kíváncsi milyen módszerekkel lehet megoldani a feszültségmegszűnéskor a mentést. Ki, milyen módszerrel szokta detektálni ezt? ADC, komprátor, vagy valami más módszer esetleg?
(#) Massawa válasza Ricsi89 hozzászólására (») Júl 4, 2015 /
 
Én ugy csinálom, hogy a program kezeli az eepromot, igy abban mindig az éppen használt adat van ( nem tudom te milyen adatokkal dolgozol). A tápbol nem igen fogsz idöben informáciot kapni, hogy megszünöben van, amire elindulna a mentés.

Esetleg lehetne rendszeres idöközökben elmenteni az adatokat.
(#) Ivan93 válasza Ricsi89 hozzászólására (») Júl 4, 2015 / 1
 
Szia! Én tennék egy nagyobb kondit az avr táplábaihoz egy diódával, ìgy a táp megszűnése után még mehet kicsit az uC. Az egyik ext.int. lábat bekötnèm a dióda elé, lefutó élnèl (táp megszűnése) mentene az eepromba, majd kikapcsol. Én így próbálnám meg.
(#) Ricsi89 válasza Massawa hozzászólására (») Júl 4, 2015 /
 
Autóba építek fedélzeti egységet, így a megtett km-t és elfogyasztott üzemanyagot akarom menteni egyenlőre. Ezek pedig szinte mindig változnak. Ha ezeket mindig menteném, amikor változik, akkor elég hamar az írási ciklus végére érne az eeprom.
(#) Ricsi89 válasza Ivan93 hozzászólására (») Júl 4, 2015 /
 
Gondoltam én is hasonlóra, csak sajnos használatban van az összes külső megszakítás.
(#) Massawa válasza Ricsi89 hozzászólására (») Júl 4, 2015 /
 
Ott másodpercek nem igen számitanak, igy elvben minden 10-20 másodpercben elmenthetnéd az éppen aktuális adatot és kész.
Egy másik megoldás hasonlo a rádioéhoz. 2 tápot használsz, az egyik folyamatos a másik meg a gyujtásrol jön. Ebben a rendszerben akkor mented el az adatokat, amikor megszünik a gyujtás, és teszed Stand-by-ba (sleep) az egész készüléket
A hozzászólás módosítva: Júl 4, 2015
(#) killbill válasza Ricsi89 hozzászólására (») Júl 4, 2015 /
 
A dioda+elko az jo modszer, csak nem az 5V-ra kell tenni, hanem a 12-re. Igy eleg sokaig kapod az energiat az elkobol. Egy 5V-os stabilizator mondjuk 7V bemeno feszig stabilan adja az 5V-ot. 10V-rol 7V-ra eshet a fesz az elkon, azaz 3V esest engedsz meg. Legyen a fogyasztas 20mA. Teszel egy 2200µF kondit. Ezek utan dU = (i * t) / C => 5V = (20mA * t) / 2200µF => t = 330ms. Ennyi ido alatt eleg sok dolgot meg lehet csinalni. Az erzekelesnek meg a didoa elott figyeled a feszultseget egy egyszeru tranzisztorral, vagy barmivel. 11V-nal indul a mentes. De ettol fuggetlenul Massawa jol mondja, a kapcsolt es fix 12V betaplalas jobb. Pontosabban csak a fixrol taplalod, a kapcsoltat csak figyeled.
A hozzászólás módosítva: Júl 4, 2015
(#) Massawa válasza Ricsi89 hozzászólására (») Júl 4, 2015 /
 
Nyilván van közöttük több (külsö IRQ), ami csak akkor ad jelet, ha megy a kocsi. Ha már nincs több ilyen bemeneted akkor használd valamelyiket egy timerrel.pl. ha 30 mp-g nem ad jelet, akkor mentsd el az adatokat.
Következő: »»   676 / 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