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   694 / 840
(#) Primary hozzászólása Szept 21, 2015 /
 
Üdv!

Adott egy ilyen programozó: Atmel ICE
avrdude-dal szeretném használni. Mit kell kiválasztani programozóként?
(#) Droot válasza Primary hozzászólására (») Szept 21, 2015 /
 
Linuxot használsz? Hogyhogy avrdude-al akarod használni?
Az AVR Studio kezeli, egyszerűbb, és gyári.
(#) Primary válasza Droot hozzászólására (») Szept 21, 2015 /
 
Windows. De a jövőben linux is.
Az elképzelés az, hogy egy programmal generálok egy hex-t, amit szeretnék automatizáltan rátölteni.
(#) Droot válasza Primary hozzászólására (») Szept 21, 2015 /
 
Így világos.
Akkor csak egy kis keresgélés kellene.
És innen össze is tudod ollózni.
(#) Primary válasza Droot hozzászólására (») Szept 21, 2015 /
 
Magát az avrdude-ot tudom használni, más programozókkal működik. Az Atmel ICE esetében nem tudom, hogy mit kell kiválasztani.
(#) Droot válasza Primary hozzászólására (») Szept 21, 2015 /
 
Próbálkozni kell. (Meg kell tanulni tanulni. )
A leírásban egy részen azt választják, hogy jtag2, azért is küldtem el, próbáld ki.
Írd be azt is, hogy avrdude --help vagy avrdude -help, így előjön a súgója, ott szerintem kiírja hogy milyen programozók vannak. De lehet hogy valamilyen paranccsal még ki is tudja listázni hogy milyen programozóvan a gépedre kötve.
(#) rolandgw válasza Primary hozzászólására (») Szept 21, 2015 /
 
Az előző oldalon morgo feltette pdf-ben a dude doksiját,csak bele kéne nézni,12.oldal: atmelice_isp,ha isp-t akarsz.
(#) vyky hozzászólása Szept 21, 2015 /
 
Sziasztok.
Tudom unjátok a kérdéseimet,de sajna csak itt tudom feltenni,reménykedve abban hogy megválaszoljátok
Szóval, az lenne a kérdés,hogy az AVR-él melyik az a "parancs" amivel a 74595-ben tudom egyesével felkapcsolgatni a ledeket?
A cikkben leírt példa programban a léptetés "cnt=cnt>>1;"
De hogy lehetne fel kapcsolni egyesével és vissza le?
Köszönöm előre is.
(#) Primary válasza rolandgw hozzászólására (») Szept 21, 2015 /
 
Próbáltam.
  1. avrdude -p m88 -c atmelice_isp -P usb

válasz: avrdude: Can't find programmer id "atmelice"
(#) rolandgw válasza Primary hozzászólására (») Szept 21, 2015 /
 
Win eszközkezelőben látod az ICE-t?
(#) Primary válasza rolandgw hozzászólására (») Szept 21, 2015 /
 
Igen. Atmel studio 6-tal tudom hasznalni.
(#) Sick-Bastard válasza vyky hozzászólására (») Szept 22, 2015 /
 
A programozasban (C-rol beszelek) egyik fontos dolog amit megtanultam, hogy nem csak 1db megoldas van. Ugyanazt az eredmenyt tobb fele uton is el lehet erni. ...

Te most shiftelessel szeretnel ledeket kapcsolgatni...
En elosszor ezeket hasznalnam:

  1. unsigned char LEDEK = 0;
  2. LEDEK |= 0x01; // elso led bekapcs
  3. LEDEK &= ~0x01; // elso led lekapcs


Ha a 0x01 hexadecimalis (16os szamrendszer) erteket valtoztatod akkor annak megfeleloen kapcsolhatod be/ki a LEDeket. Akar egyszerre az osszeset, vagy szelektalva.

Elnezest a rovidebb valaszert, de rohanok.
(#) vyky válasza Sick-Bastard hozzászólására (») Szept 22, 2015 /
 
Köszönöm, megnézem.
(#) Primary hozzászólása Szept 22, 2015 /
 
Csináltam statikus könyvtárakat, amiket Atmel Studio 6 segítségével tök jól lehet használni. Viszont én ezek szeretném sima avr-gcc-vel is használni.
Nem jövök rá, hogy mit kellene a Makefile-ba írni, ahhoz, hogy megfelelően működjön. Eddig a WinAVR csomagban lévő MFile nevű programocskával generáltam makefile-t, plusz kézzel beleírtam a további c fájlokat.
Tudtok ebben segíteni?
(#) AxaGame válasza Kerberosz1 hozzászólására (») Szept 22, 2015 /
 
Szia!
Nem tudom mit értesz "100%"-os pontosság alatt.
Mert ha nagyon pontosan akarsz mérni, akkor a uP nem csinálhat mást, még üzenetet sem küldhet. Akkor meg miért is?

Javaslom, hogy Int0 vagy ehhez hasonló fontosságú lábra kösd a RC vevőtől érkező jelet. (fesz. szintre figyelni!) Az Intx úgy legyen beállítva, hogy szintváltásra működjön.
Ha az Intx kiszolgáló futáskor H szintet mutat az Intx PIN, akkor LH él volt. Ekkor pl. nullázd a timered.
Ha a kiszolgáló L szintet kapott, akkor HL él volt és a timert kiolvasva megkapod az impulzus szélességét abban az időalapban, amiben fut a timer (osc/n).
Ez általános és feltételezi, hogy van szabad timered. De ha nincs ilyen, akkor a start-stop változókat használva is megmérheted az időt.
Ha 16 bites mérést akarsz (a nagyobb pontosság kedvéért), akkor a timer.ovf megszakítást tudod használni a felső számláló növeléséhez. Ezzel már elég pontosan meg tudod mérni szerintem, még ha nem is 100%-os. De max 3msec mérését 16 bitnél jobban közelíteni nem hiszem, hogy kellene. ( Ráadásul RF átvitel is van benne, annak minden zajával.)
(#) vyky hozzászólása Szept 23, 2015 /
 
Sziasztok.
Látom nagyon leült a topik.
Na szóval Nem nagyon jutottam előrébb a shift regiszteres dologgal
Így aztán marad a közönség segítség kérése
Sick-Bastard ugyan megpróbált segíteni,de sajna ez számomra kevés,a tudás hiánya miatt
Tehát száz szónak is egy a vége.
Egy példa program kellene ami bemutatja hogy kell leprogramozni a 74595-ön a ledek sorban való felkapcsolását.
Előre is köszönöm.
(#) ThompsoN válasza vyky hozzászólására (») Szept 23, 2015 /
 
Szia.

Ebben a cikkben van szó AVR és 74HC595 párosításáról.
A hozzászólás módosítva: Szept 23, 2015
(#) pont válasza vyky hozzászólására (») Szept 23, 2015 /
 
Ha Bascomban is jó, íme:

SPI-n decimális számként kell küldeni a 74595-nek ami kettes számrendszernek megfelelően megjeleníti a lábakon. Pl. ha az 5. lábat akarjuk bekapcsolni, 16
-ot küldünk, stb.
  1. Config Portb = Output
  2.  
  3. Config Spi = Soft , Dout = Portb.4 , Ss = Portb.0 , Clock = Portb.1
  4.  
  5. Dim W(1) As Byte
  6.  
  7. Spiinit
  8.  
  9. Do
  10.    W(1) = 1
  11.    Spiout W(1) , 1                                       'Bekapcsolja a Q0 15láb'
  12.    Wait 1
  13.  
  14.    W(1) = 2
  15.    Spiout W(1) , 1                                          'Bekapcsolja a Q1 1láb'
  16.    Wait 1
  17.  
  18.    W(1) = 4
  19.    Spiout W(1) , 1                                          'Bekapcsolja a Q2 2láb'
  20.    Wait 1
  21.  
  22.    W(1) = 8
  23.    Spiout W(1) , 1                                          'Bekapcsolja a Q3 3láb'
  24.    Wait 1
  25.  
  26.    W(1) = 16
  27.    Spiout W(1) , 1                                          'Bekapcsolja a Q4 4láb'
  28.    Wait 1
  29.  
  30.    W(1) = 32
  31.    Spiout W(1) , 1                                          'Bekapcsolja a Q5 5láb'
  32.    Wait 1
  33.  
  34.    W(1) = 64
  35.    Spiout W(1) , 1                                          'Bekapcsolja a Q6 6láb'
  36.    Wait 1
  37.  
  38.    W(1) = 128
  39.    Spiout W(1) , 1                                          'Bekapcsolja a Q7 7láb'
  40.    Wait 1
  41.  
  42. Loop
  43. End
A hozzászólás módosítva: Szept 23, 2015
(#) vyky válasza ThompsoN hozzászólására (») Szept 24, 2015 /
 
Szia. Igen ezt a cikket elolvastam,de sajna ez csak lépteti egyesével,miközben a mögötte lévőt lekapcsolja.
Nekem olyan minta kellene,hogy ne kapcsolja le a mögötte lévőket.
(#) vyky válasza pont hozzászólására (») Szept 24, 2015 /
 
Köszönöm szépen,de a bascom nem játszik. Mert az a program nincs meg nekem ,és azt sem tudom hogy az STK500-at támogatja-e?
(#) AxaGame válasza vyky hozzászólására (») Szept 24, 2015 /
 
Bocsi a kérdés miatt, de visszaolvasva az eddigieket, mi az amit tudsz???

Estére, ha lesz időm, küldök egy asm megoldást, de 4014-re (mert én azt szoktam használni). Megnézem majd a különbséget a két ic között.
A megoldásban tetszőleges adatértéket tudsz kiírni sorosan.
(#) Kovidivi válasza vyky hozzászólására (») Szept 24, 2015 /
 
Kiküldöd ezt: 0b00000001, vársz kicsit. Majd ezt: 0b00000011, aztán 0b00000111, és így tovább.
(#) vyky válasza Kovidivi hozzászólására (») Szept 24, 2015 /
 
Aha ,mondjuk kezdem érteni
(#) vyky válasza AxaGame hozzászólására (») Szept 24, 2015 /
 
Köszönöm a segítséget előre is.
(#) zombee válasza vyky hozzászólására (») Szept 24, 2015 /
 
Szia!

Még annyit hozzátennék hogy hardcore AVR-ezők (mint pl. én) a "háttérben" futtatják a shift regiszteres meg egyéb portbővítős műveleteket. Ehhez kell egyrészt egy időzítő megszakítása, ami 1-20ms időközönként fut le, alkalmazástól függően. Az időzítő megszakításban elindul az adatátvitel, fajtától függően(pl. 74xx595 esetén SPI). Ez még csak az első bájtról szól, ezért engedélyezni kell az SPI megszakítását is (megszakításon belül nem menő várakoztatni). Az SPI megszakításban egy számláló értékét növeljük, és az átvinni kívánt bájtok függvényében vagy elindítunk még egy átvitelt, vagy az 595(-ök) ST_CP lábán aktiváljuk a kimeneti latch-be írást. Utóbbival párhizamosan lehet tiltani az SPI megszakítást, de nem muszáj mert új átvitelt úgysem indítasz el...
(#) vyky válasza zombee hozzászólására (») Szept 25, 2015 /
 
Köszönöm,de maradjunk abban hogy ebből egy szót nem értettem
Szerintem az lesz a legegyszerűbb ha veszek egy atmeg8-at és a shift regisztert kihagyom
Így tovább tudom bővíteni a ledek számát.
Már csak olyan kérdésem volna,hogy a hozzászólásban megadott rajzhoz npn,vagy pnp tranzisztor kell a ledek elé ha 12 volttal szeretném hajtani.
(#) rolandgw válasza vyky hozzászólására (») Szept 25, 2015 /
 
Szerintem ugorj rá páros lábbal Ami nem megy nem kell erőltetni.
(#) killbill válasza vyky hozzászólására (») Szept 25, 2015 /
 
Arra gondoltál már, hogy egyszerre csak egy szakmát akarj megtanulni? Mert sem az elektronikához nem értesz sem a programozáshoz. Külön-külön egyszerübb nekifutni.
(#) vyky válasza killbill hozzászólására (») Szept 25, 2015 /
 
Jogos De csak hobbi szinten érdekel a dolog,az hogy ki is tudom vitelezni segítséggel,csak még jobban érdekelté tesz. De igazad lehet nem zaklatlak titeket tovább.
További szép napot nektek.
(#) k3gy3tl3n válasza vyky hozzászólására (») Szept 25, 2015 /
 
Itt jártál már? Bővebben: Link
Következő: »»   694 / 840
Bejelentkezés

Belépés

Hirdetés
XDT.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