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   741 / 837
(#) b-max válasza proba hozzászólására (») Júl 25, 2016 /
 
Ez kiirja az eeprom tartalmat, csak visszaellenörzéskor hibát jelez ! De hogy, és mit frissitesz ?
(#) Magyar Csaba válasza b-max hozzászólására (») Júl 25, 2016 /
 
A programozódon magán van egy ATMEGA8. Annak a tartalmát frissíted.
(#) attika válasza Magyar Csaba hozzászólására (») Júl 25, 2016 /
 
Annak a tartalmát egy másik USBAsp-vel lehet frissíteni, hogy össze kell dugni a kettőt és az egyiket át kell jumperelni. Kb 10 perc az egész de nekem ez tökéletesen működött frissítés nélkül is.
(#) Magyar Csaba válasza attika hozzászólására (») Júl 25, 2016 /
 
Nekem is működik.
Én csak válaszoltam.
(#) b-max válasza attika hozzászólására (») Júl 25, 2016 /
 
Sajnos most nem tudom frissiteni. Alpvetően a tartalmat kiirja, csak mismatch-ot ir. A fuse bit-ekkel kell valamit variálni ?
A hozzászólás módosítva: Júl 25, 2016
(#) b-max válasza b-max hozzászólására (») Júl 25, 2016 /
 
A chip erase törli a flash részt, de az eeprom tartalmat meghagyja ? Ez normális ?
(#) b-max válasza b-max hozzászólására (») Júl 25, 2016 /
 
Mint kiderült , normális, lock-bit-et kellett átállitani, és akkor letörölte. Most viszont az van, hogy minden első byte irodik csak be, a másodikok FF értéken maradnak ! Mi a fene ez ?
:O
(#) b-max válasza b-max hozzászólására (») Júl 26, 2016 /
 
Sikerült megoldani.
Rövidebbre vettem a kábelt a progamozó és a áramkör között, de a gond valószínüleg az volt, hogy csak egy GND volt bekötve.
Most egyből kigyulladtak a ledek az áramkörbe, illetve gond nélkül sikerült az EEPROM tartalmat kiirni.
(#) proba válasza b-max hozzászólására (») Júl 26, 2016 /
 
Tényleg olyan is volt, a GND sem ment ki a programozóból ott ahol gondoltam ( némelyeknél A soros port lehetősége miatt beáldoztak néhány GND pontot, amit nem vettem figyelembe)
(#) Max26 hozzászólása Júl 31, 2016 /
 
Sziasztok!

Hogyan lenne egy float típusú változó mentése majd törlése EEPROM-ból?
(#) Gj válasza Max26 hozzászólására (») Júl 31, 2016 /
 
Egy float ugyan úgy bájtokból áll, mint egy bájt, csak többből.
Szedd szét bájtokra és írd ki őket külön.

Mit értesz törlés alatt? Írd felül valami mással.
A hozzászólás módosítva: Júl 31, 2016
(#) gerry hozzászólása Aug 1, 2016 /
 
Tiszteletem!
Atmega162-t ami 16mhz-es meddig lehet károsodás nélkül túlhajtani? Köszi.
Találtam atmega88-at 32Mhz-n stabilan járni. Igaz az 20Mhz alapból.
A hozzászólás módosítva: Aug 1, 2016
(#) zombee válasza gerry hozzászólására (») Aug 2, 2016 /
 
Károsodni nem fog, max. nem indul el vagy hibádzik. 20MHz ilyennel még bőven vállalható, de csak 5V-on. Nekem VGA-kimenetes órám magja egy ATMega88, 25.125MHz-en...
(#) gerry válasza zombee hozzászólására (») Aug 2, 2016 /
 
Közben próbálkoztam 25MHz-el, amivel ugyan javult a jelek befogása, amik bitminták, csak még így is téveszt. De nem kísérletezem vele inkább megépítem ttl- vagy egy ttl "bemenetválasztó" után teszem rá a ukontrollert.
(#) Tomi_Bp hozzászólása Aug 2, 2016 /
 
Tiszteletem Kedves Fórumtársak!
Pár éve külföldre költöztem és a semmiről kezdtem újra az életem (nyelvtudás és pénz nélkül), így programozni, elektronikázni sem volt/van időm, viszont sikerült vennem pár hete egy régi roncsot, amiben bele berheltem már egy riasztót, de szeretném azt kiegészíteni egy "pager"-rel. (Sajnos még mindig egy arab gettó kellős közepén lakom, ahonnan előszeretettel kötnek el autókat hétvégenként széthajtani, majd porig égetni, így szeretném ezt megelőzni...)
Terveztem még otthon egy ilyen építését, de van egy kis elakadásom.
Három panelből áll.
-Egy SIM900 GSM modul-ból,
-Egy UBLOX NEO-6M GPS modul-ból és
-Egy Arduino Nano-ból (ATmega328p)
Terminál programból már tudtam kommunikálni a GSM modullal (SMS-t küldeni/olvasni, hívást indítani/fogadni) és a GPS modul is szépen zúdítja az adatokat. A hardveres soros portot már használtam sokszor, azzal nincs gond. Természetesen a riasztóhoz szint illesztés és valami szünetmentes tápellátás esetleges akku saru leszedés ellen lesz majd, de az a jövő zenéje.
Két dologgal van problémám.
1., -Az első, hogy a ATmega328p-nek csak egy soros portja van, így meg kell oldanom a GPS számára minimum a szoftveres soros RX oldalát. Hát ez nekem így újrakezdésnek kicsit nagy falatnak tűnik.
Fizikus az egyik cikkében csinált szoftveres soros portot, erre emlékeztem, de ő meg pont csak a TX oldalt csinálta, pedig reméltem, hogy az ad egy támpontot. Ha ezen túl jutok, akkor jön a másik probléma, mely talán most kisebbnek tűnik.
2., -Az adatfolyam zúdulása után ki kell válogatnom a számomra hasznos adatokat (koordináták, sebesség, magasság, esetleg atomóra idő)
Ha valakinek esetleg volna egy már leprogramozott szoftveres soros port ( 9600 bps 8 N 1 ) "driver"-e C-ben ATmega328p-hez, vagy volna kedve és ideje leprogramozni, vagy tovább berhelni amit én elkezdtem, szívesen megvenném vagy kompenzálnám megegyezés szerint. (nyilván azt már privátban)
Ha nincs ilyenje senkinek és senki nem akar nekem "bérprogramozni" sem, akkor szívesen vennék majd valami segítséget, hogy merre induljak tovább, mert találtam a neten sok hasonlót, megpróbáltam berhelni, de nem értem el sikert, csak az időm ment vele...
(AVR Studio 4.16 build 638 verziót használok WinAVR 20090313 4.3.2 verzióval, programozóm a Topi féle AVR-Doper)
Köszönöm előre is a segítő válaszokat!
(#) kapu48 válasza Tomi_Bp hozzászólására (») Aug 2, 2016 /
 
És ezt hova akarod elhelyezni, hogy ne találják meg?

GPS antennának látnia kel a műholdakat!

Túl nagydoboz lesz az egész.
Az első lesz, hogy ki tépik a kocsidból!

Nagyon valószínű, hogy már a gk. tolvajtól vetted!
A hozzászólás módosítva: Aug 2, 2016
(#) kapu48 válasza Tomi_Bp hozzászólására (») Aug 2, 2016 /
 
Egyébként:
SoftwareSerial Library
(#) Tomi_Bp válasza kapu48 hozzászólására (») Aug 2, 2016 /
 
A cucc, de minimum a GPS antenna a műszerfalba menne, mert a szélvédő a legmeredekebb üveg, tehát onnan lenne a legjobb rálátás. Az elsődleges nyilván az lenne hogy azonnal hív, ha riasztás van és onnantól küldi 20-30-40 másodpercenként a koodinátákat SMS-ben ilyen formában:
http://www.google.hu/maps/place/59°11.39363,017°37.48168
amíg nem inaktiválom ezt.
Így ha bántják a verdát, már indulok is és ha esetleg mégis el tudják vinni, tudok menni utánuk taxival és rendőrség, vagy önbíráskodás... kinek-kinek vérmérséklete szerint.
(A verda nem volt lopott, még a kb 20 éves szervízkönyv is megvan hozzá, egész sokáig vezetve, csak az előző tulajnak, aki a 12. ez volt az első, tanulós autója, ami főleg a kuplungon és váltón nagyon érezhető.)
(#) Tomi_Bp válasza kapu48 hozzászólására (») Aug 2, 2016 /
 
Ha ez C-ben lenne, szuper lenne, de mint írtam, C-ben írom hozzá a programot.
Még a C sem használja ki igazán optimálisan a lehetőségeket amik ebben rejlenek, de az Arduino nyelv végképp elrejti... Nem akarok elkényelmesedni!
Azért köszönöm!
(#) csatti2 válasza Tomi_Bp hozzászólására (») Aug 2, 2016 / 1
 
Mivel úgyis szint illesztened kell a modulokat az AVR-hez (gondolom 5V-ról megy, míg a modulok 3V3-asok), használhatsz olyan IC-ket (line driver, pl.:74LVC541, 74LVC245) amelyekkel kiválaszthatod, hogy melyik eszköz kommunikálhat a hardveres porton (és mellette a szintillesztést is megoldja). Így megúszhatod a lassú és körülményes szoftveres port kezelést. A SIM modullal úgyis csak akkor kell kommunikálni, ha jelzi, hogy vmi esemény történt (pl. SMS jött) vagy ha te akarsz küldeni vmit.
(#) Tomi_Bp válasza csatti2 hozzászólására (») Aug 2, 2016 /
 
Szerencsére csak a riasztó 12V-os riasztás jelét kell majd egy fesz.osztón és opto csatolón keresztül egy megszakítás portra kötni. A GPS és a GSM modul is 5V-on kommunikál. Gondolkoztam a hardveres soros port RX felének "osztozásán", de a bonyolultabbsága ellenére is a szoftveres sorosban látom a megoldást.
A GSM modullal fontos lenne az állandó kapcsolat, a GPS által ontott adatok közül elég időnként halászni.
Lesznek más funkciók is.
ADC-vel akku feszültség szint mérés, alacsony akku fesz. esetén tájékoztatás SMS-ben.
SMS-re (a konnektoros parkolóhely miatt) indítható motor- és utastér előmelegítés. (Svédország, télen -25 - -30°C is akár)
(#) kapu48 válasza Tomi_Bp hozzászólására (») Aug 2, 2016 2 /
 
Ha talán veszed a fáradságot, és bele nézel, amit linkeltem???
Rá jöttél volna, hogy az egész lib tök Cpp-ben van megírva!

(Ennyit a segíteni akarásról! Érdemes? )

Én a riasztóról gondoltam, hogy lopot volt! És már meg is mondták hova szereld?
Nem lessz nagy lecke a megtalálása!
A hozzászólás módosítva: Aug 2, 2016
(#) Tomi_Bp válasza kapu48 hozzászólására (») Aug 3, 2016 /
 
Talán vettem a fáradságot és ugyan igen nehéz megfelelő angol tudás nélkül (és megkopott programozási tudással, ami sosem volt magas szintű, ráadásul csak autódidakta) és ennek ellenére is elképzelhető, hogy én vagyok a hülye felületes ostoba bunkó, de akárhogy nézem amit linkeltél az az arduino.cc , az Arduino hivatalos honlapja, ahol az Arduino programozó felület kiegészítő LIB könyvtárról írnak, illetve egy másik az Arduino programozóhoz társuló Teensyduino program oldalára is visz link. Ezek mind az általam is használt AVR-GCC programnyelvhez hasonló, de egyszerűsített Arduino programnyelvhez íródtak. Amik nem, azok pedig csak ízelítők, nincs letölthető használható (és általam is megtalált) cucc.


A riasztót még otthon, Magyarországon vettem újonnan a http://www.autoriasztok.hu/ boltból.
Egy riasztónál sosem az a kérdés, hogy ki lehet-e iktatni, hanem, hogy mennyi idő alatt. Ha kellőképpen szétbontod az autót és próbálsz gyári minőségben installálni és normális minőségben vissza szerelni mindent, akkor eltart egy darabig. Ezért mondtam, hogyha azonnal "telefonál" nekem a riasztáskor, akkor még tetten tudom érni akár a tettest, de ha mégsem, és a riasztót ki is tudja iktatni, meg tudom találni a kocsit...
(#) kapu48 válasza Tomi_Bp hozzászólására (») Aug 3, 2016 /
 
OK meg gyöztél!

Keressünk másikat:
avr soft serial library
Elsőre:
Bővebben: Link

Elégé C?
(#) rolandgw válasza kapu48 hozzászólására (») Aug 3, 2016 / 1
 
Szegény Lőrincze Lajos...
(#) kapu48 válasza rolandgw hozzászólására (») Aug 3, 2016 /
 
Igen, sajnos mindenkinek van valami gyengéje!
Neked pl., hogy nem igen segítesz másoknak!

Sajnos Lőrincze prof. sosem tanított, csak egy ostoba tanársegéd.
Aki csak körmösöket osztott tudás helyet!

A hozzászólás módosítva: Aug 3, 2016
(#) kapu48 válasza Tomi_Bp hozzászólására (») Aug 3, 2016 /
 
(#) Tomi_Bp válasza kapu48 hozzászólására (») Aug 3, 2016 /
 
A Google nálam is működik, nekem is ez volt az első találat (és ha jól vettem ki az úriembernek az www.avrfreaks.net-en pont ugyan ez a problémája mint nekem) és az ezen összegyűjtött linkek az első tíz találat között. Ezeket és még sok másikat letöltöttem és próbáltam a saját uC-re (ATmega328p) szabni, amit szintén még az első hozzászólásom mellé mellékeltem az eredetit és a szerkesztettet is.
Az nem működött.
Valamiért, nem értem miért, de ezek mind az ATtiny (általában) 8 lábú családjához íródtak (mármint azért értem, hogy abban ha jól emlékszem, nincs hardveres soros port, de azt nem, hogy miért nincs az ATmega88/168/328/648-hoz...)
A hozzászólás módosítva: Aug 3, 2016
(#) kapu48 válasza Tomi_Bp hozzászólására (») Aug 3, 2016 /
 
Pedig ott van benne az : AVR_ATmega328P
Bővebben: Link

AltSoftSerial_Boards.h
  1. // Arduino Uno, Duemilanove, LilyPad, etc
  2. //
  3. #elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega328P__)
  4.  
  5.  #define ALTSS_USE_TIMER1
  6.  #define INPUT_CAPTURE_PIN               8 // receive
  7.  #define OUTPUT_COMPARE_A_PIN            9 // transmit
  8.  #define OUTPUT_COMPARE_B_PIN           10 // unusable PWM


Természetesen be kel helyettesíteni a PIN számokat, a mega PORT.PIN értékeire.
De aki programozni akar annak ezeket meg kel tanulnia!

(Sajnos Arduinora közölnek legtöbbet, szükséges megérteni, és javítani!)
A hozzászólás módosítva: Aug 3, 2016
(#) kapu48 válasza kapu48 hozzászólására (») Aug 3, 2016 /
 
Valahol a header elején létrehozol 1 ilyen sort:
  1. #define __AVR_ATmega328P__

Lényeg, hogy ahol szükséges látható legyen

Ez után a fordító csak az ATmega328P-hez szükséges részeket fordítja be a programodba.
Aztán meg kel keresni az előforduló arduinos hivatkozásokat, és le kel cserélni
vagy át definiálni AVR C utasításokra vagy nevekre.

Általában a fordító reklamál az ismeretlen nevekre, csak modósítani kel őket.
A hozzászólás módosítva: Aug 3, 2016
Következő: »»   741 / 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