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   554 / 840
(#) zsuscsinyo válasza TavIR-AVR hozzászólására (») Aug 16, 2013 /
 
Olyan jót tudok mosolyogni a basic nyelven, mintha csak egy magyar angol fordítás lenne a szintaktika.
(#) Panhard válasza TavIR-AVR hozzászólására (») Aug 16, 2013 /
 
Szia! Egy arduino mini board bootloaderjét akarom beletölteni egy ATMEGA328P-be. Lényegében egy arduino mini boardot szeretnék létrehozni. Arduinoban kiválasztom az alappanel típusát, programozó típusát, és elvileg a "bootloader beégetése" menüponttal indulna a folyamat, de nem ismeri fel a programozót.
Ekkor próbáltam egy másik programmal beégetni (kkmulticopterflashtool), az gyönyörűen beégette az arduino könyvtárában lévő bootloadert. Utána FTDI kapcsolattal bele is tudtam tölteni a programot, de mindig csak egyszer. Gondolom, mert felülírta a bootloadert, vagy a konfig biteket nem úgy állította be a kkmulticopterflashtool, ahogy az arduino tenné. A programozóval lehet gond, hogy nem ismeri az arduino?
A hozzászólás módosítva: Aug 16, 2013
(#) TavIR-AVR válasza zsuscsinyo hozzászólására (») Aug 16, 2013 /
 
Ok, akkor legyen _valódi_ Bascom-AVR nyelven (ver: 2.0.7.7-ben készült):

  1. $regfile = "m328pdef.dat"
  2. $crystal = 8000000                                          'internal, 8 MHz
  3.  
  4. Portb.5 = Output
  5. Dim A As Byte
  6. Dim I As Byte
  7. Input "mennyit villogjak?" , A
  8.  
  9. For I = 0 To A
  10.   Set Portb.5
  11.   Waitms 100
  12.   Reset Portb.5
  13.   Waitms 100
  14. Next I
  15. end 'end program



Az előző hozzászólásban az _alapelvet_ írtam le.
C-ben, Arduinoban sem sokkal bonyolultabb...
A nyelv nem volt az alapkiírásban...

C: MicroC v. Gcc fordító
Basic: MicroBasicm Bascom-AVR, FastAVR
Pascal: MicroPascal
Asm: AVR-Studioval
Speciális: Arduino (C-oldalág)

Szabadon választható.
Én az Arduinoban vagyok nagyjából jól, illetve jól a Basic/Bascom-AVR nyelvekben...


Minden nyelvnek van létjogosultsága. A 30+ korosztály még igencsak Basic nyelvjárásokon nőtt fel (ZX-81, Sinclair, C=64, Primo, HTZ80, QBasic...)
(#) fifadani hozzászólása Aug 16, 2013 /
 
A m_delay_10ms(10) az 10*10ms... Láttam, hogy csak 65,xxx ms-t képes várni a _delay_ms aztán azóta ezt használom:

  1. void m_delay_10ms(unsigned int val)
  2.         {
  3.                 unsigned int i;
  4.  
  5.                         for(i=0;i<val;i++)
  6.                         {
  7.                         _delay_ms(10);
  8.                         }
  9.               }


A hozzászólás módosítva: Aug 16, 2013
(#) icserny válasza Panhard hozzászólására (») Aug 16, 2013 /
 
Idézet:
„A programozóval lehet gond, hogy nem ismeri az arduino?”

Ezen az oldalon is található egy részletes útmutató (az arduino.cc most nem elérhető). Ebben az Arduino IDE melett az AvrDude programot ajánlják.
(#) Szabi1 válasza zombee hozzászólására (») Aug 16, 2013 /
 
Tulajdonképpen egy automata mosógép vezérlőjét szeretném kiváltani, már minden megvan, csak még az NTC vel mért hőfokvezérlést kell kitaláljam, van ötletetek?
(#) Panhard válasza (Felhasználó 15355) hozzászólására (») Aug 16, 2013 /
 
Köszi! Már csak azt nem értem, hogy az AVRStudio4 és a 6 sem ismeri az ATMEGA328P procit?
(#) Panhard válasza (Felhasználó 15355) hozzászólására (») Aug 16, 2013 /
 
Ha a Device Programing ablakban kiválasztom az STK500-at com6-on, akkor a mellette lévő Device listában nincs 328P, de ha AVR simulatort választok, akkor van.
(#) Panhard válasza (Felhasználó 15355) hozzászólására (») Aug 16, 2013 /
 
Persze, olvasni tudja, ki is írja, hogy 328P-t lát, de nem az van kiválasztva (mert nincs olyan)
(#) Panhard válasza Panhard hozzászólására (») Aug 16, 2013 /
 
Át kellett másolni a devices könyvtárból a STK500/xml könyvtárba az ATMEGA328P.xml fájlt. Így működik, írja, olvassa. Már csak azt kell kitalálnom, hogyan állítsam be a fuse biteket, hogy jó legyen arduinohoz.
(#) TavIR-AVR válasza Panhard hozzászólására (») Aug 16, 2013 /
 
Az ATMEL hivatalos válasza:
- a Studio 5 utáni eszközökben az STK500 támogatás korlátozott. Tessék áttérni MKII/JTAGICE MKII / STK600 programozókra. "Elavult eszközöket nem támogatunk" jeligére a marketingosztály fele lehet jelezni az észrevételt.
- AVR-Studio 4.19 viszont mindent támogat....


AVR-Studioból frissíts a 4.13 fölé. Az után jelent meg a Mega328P chip.
A hozzászólás módosítva: Aug 16, 2013
(#) Szabi1 válasza Szabi1 hozzászólására (») Aug 16, 2013 /
 
Még azt szeretném kérdezni, ha van egy egyfázisos motor, és relével akarom irányitani, akkor lesz valami baja, ha pl mind a 2 motor vezetékére csak fázist vagy csak nullát kapcsol?Mert igy szeretném megállitani, hogy ne kelljen még 1 relé?
(#) TavIR-AVR válasza Szabi1 hozzászólására (») Aug 16, 2013 /
 
Rajzold le.
Így elmondásból jelenleg fogalmam sincs a tervezett rajzról - ami a fejedben létezik csak....
(#) zombee válasza TavIR-AVR hozzászólására (») Aug 16, 2013 /
 
Csak szólok hogy a 20ms-es felvillanáshoz nem kell jó szem, mindenki látja. Egyik termékünkön van egy PIC , a beállítás szerint a kimeneten 11-17ms ideig kell működtetnie egy bistabil csapot(igen, a 20ms más túl sok!). A kimenetre két LED is kapcsolódik, antiparalel módban. A csap működtetésekor kb. 2mA folyik a LED-eken, és lám! Tökéletesen látszik a felvillanás! Az AVR-es tesztgépünk csak azt mondja meg hogy jó/nemjó, így utólag megmértem az időt: átlagosan 14ms.
A hozzászólás módosítva: Aug 16, 2013
(#) zombee válasza Szabi1 hozzászólására (») Aug 16, 2013 /
 
A teraszon nekem is figyel már lassan 2 éve egy vezérlőhibás mosógép, a terítővel és a virágokkal már teljesen beleolvadt a környezetébe.

Az egy analóg mérő lesz, egy ellenállás amit valószínűleg egy 230V-os relé kivezérlésére terveztek. Ha továbbra is ezt az NTC-t akarod használni akkor csavard ki a helyéről, mérd ki különféle hőfokokon hogy mekkora az ellenállása(polaritás nem számít), de lehet hogy típus alapján adatlap is lesz hozzá és akkor nem kell méregetni. A megszerzett tudást az AVR analóg bemenetén tudod kamatoztatni.
(#) fifadani hozzászólása Aug 16, 2013 /
 
Zombee tudsz nekem segíteni picit?
Rendeltem HD44780-as vezérlővel egy LCD-t. Majd, az oldalon található megoldások közül egyet kiragadok, hogy 1 láb elég legyen az LCD-hez. (próbálkozok)

Viszont amiben segítened kellene az az ADC mérés. Most megelégszem annyival, hogy ha elér X feszt az ADC bemeneten lévű feszültség, akkor kigyulladjon egy LED.

(Majd a labortápomhoz szeretnék panelműszert egyszer....)
A hozzászólás módosítva: Aug 16, 2013
(#) zombee válasza fifadani hozzászólására (») Aug 16, 2013 /
 
Lehet hogy neked az analóg komparátor is elég lesz. Segítség: adatlap!
(#) fifadani hozzászólása Aug 16, 2013 /
 
Aztán ha majd a labortáphoz szeretnék feszültség és árammérőt csinálni?
Az gondolom már nem egyszerű feladat... Igazából erre se nagyon jöttem még rá.
(#) zombee válasza fifadani hozzászólására (») Aug 16, 2013 /
 
Létezik negatív/pozitív oldali árammérés, meg leválasztott is. De közvetlenül nem tudsz mérni, műveleti erősítő is kelleni fog. De amíg a programozás alapjai nincsenek meg, ne is álmodj labortápról!
A hozzászólás módosítva: Aug 16, 2013
(#) TavIR-AVR válasza fifadani hozzászólására (») Aug 16, 2013 /
 
Első körben szerintem max utánépítésben gondolkodj és azt a kódot módosítgasd.
Pl. http://tuxgraphics.org/electronics/200707/bench-power-supply-unit.shtml

Itt benne vannak a kért alapok és sokat lehet közben tanulni...

Elsőre nem rakétavezérlő-célkövető rendszert építünk, hanem LED villogtatót .

LCD tipp: először _tanuld_ meg a 4 ill. 8bites módot. Utána látod, hogy hogyan lehet a lábakat lefaragni - és van-e értelme/szabad-e és mi a következményei...
A hozzászólás módosítva: Aug 16, 2013
(#) fifadani hozzászólása Aug 16, 2013 /
 
Hmm, gyakorolgatok akkor... Azért köszi.
(#) Szabi1 válasza zombee hozzászólására (») Aug 17, 2013 /
 
Odáig jutottam, hogy körülbelül kész az IC1 programja, még úgyis kell változtatni az NTC miatt ami az ADC 0-ra megy majd, még lesz módositva a menübe, előre beálitott programok lesznek, és lesz lehetőség saját kezüleg beállitani.
Azt nem tudom, hogyan lehet beállitani, hogy külső Kvarcról működjön, milyen regisztert kell használni?
IC1 szerepe, hogy számláljon, be legyen tanitva hányféle program legyen, és kezelje a nyomógombot, és az LCD-t.
IC2 2 es lábán amig van GND addig fog mosni, ha a 3mas lábon van addig centrifugál, és 3 mas láb a szivattyúnak van. A vizkapcsoló olyan érzékelő ami akkor zár rövidre, ha tele van vizzel a mosógép.
(#) zombee válasza Szabi1 hozzászólására (») Aug 17, 2013 /
 
A FUSE biteket kell módosítani a programozóval, regiszterek piszkálásával nem lehet kristályra kapcsolni.
(#) Szabi1 válasza zombee hozzászólására (») Aug 17, 2013 /
 
Nekem csak sima LPT-s "programozóm" van azt hiszem STK 200 as másolat, aval lehet? Mert tudom hogy egyes programozók nem engedik a fuse biteket piszkálni.
(#) Szabi1 válasza Szabi1 hozzászólására (») Aug 18, 2013 /
 
S fontos külső kvarcot használni? Tulajdonképpen miszerint lehet meghatározni mekkora órajelre van szükség?
(#) zombee válasza Szabi1 hozzászólására (») Aug 18, 2013 /
 
STK200-al is lehet, amit PonyProg és Bascom is támogat. PonyProg alól a SUT_CKSEL
részeknél az összes helyről ki kell venni a pipát és a FUSE-t írni.

Pont lett volna a második kérdésem hogy minek kristály, nem látom hogy bármi is olyan pontos
időzítést igényelne egy mosógépben. Maximum akkor ha a mosás elején ki akarod jelezni
hogy ekkor meg ekkor lesz kész, azon kívül semmi. Egy mechanikus vezérlés esetén még az
AVR +/- 5%-ánál is jóval nagyobb eltérések vannak, csak bele kell gondolni hogy milyen meleg
maga a mosógép vagy a beáramló víz amit X fokra fel kell fűteni hogy továbbmenjen...
(#) Szabi1 válasza zombee hozzászólására (») Aug 18, 2013 /
 
Megirtam IC2 nek a programot...
Még biztos kell rajta módositani, majd ha kipróbálom akkor jövök rá.

main.c
    
(#) zombee válasza Szabi1 hozzászólására (») Aug 18, 2013 /
 
Igazából nem látom, miért kell két "kicsi" AVR mikor egy "nagy" is bőven elég. Tudom hogy egy mosógépben jósok érzékelő meg működtető cucc munkálkodik, de nem hiszem hogy annyira túl kellene bonyolítani hogy két külön IC (több hibaforrás) legyen a rendszerben. A portlábak hiányát nagyobb IC-vel és/vagy expanderrel szokás megoldani, nem újabb programozott IC-vel. Rosszul látom?
A hozzászólás módosítva: Aug 18, 2013
(#) Szabi1 válasza zombee hozzászólására (») Aug 19, 2013 /
 
És igy nem működőképes? Nekem már nincs kedvem újből programot irni.
Leginkább azért döntöttem két AVR ben mert az egyik számolja az időt, mig a másik irányitsa a mosást. Az IC1 nél lévő relé a fűtőszálhoz megyen. Valaki elmondaná miképp kössek NTC-t az AVR adc lábára? Szükségem volna 1 rajzra.
A hozzászólás módosítva: Aug 19, 2013
(#) zombee válasza Szabi1 hozzászólására (») Aug 19, 2013 /
 
Csak tapasztalat, hogy a ki nem próbált dolgokat egyetlen IC-n kell megvalósítani, és csak akkor alkalmazni egy másikat ha valamelyik már kipróbált és 100% hogy működik. Tapasztalat.
Az általam (is) feljesztett tesztgépen a központi processzor(ATMega16) egyedül a kommunikációért felel, az egyes perifériákon(relémátrix, mérőmátrix, mérőkártya, tápegységek) is AVR van, és ez okozott pár gubancot a fejlesztésnél.

Itt van két kép NTC bekötésére. Az első egyszerűbb, de nemlineáris. A másodiknál a kimenőfesz lineáris lesz, bár egy kicsit bonyolultabb. Mindkét esetben a segédellenállás és a feszültség értékét "jól" meg kell választani, az NTC nem termelhet számottevő hőt!
Következő: »»   554 / 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