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   58 / 840
(#) Topi válasza wg_kezdo hozzászólására (») Jún 16, 2008 /
 
Igen, megvalósítható.
(#) wg_kezdo válasza Topi hozzászólására (») Jún 16, 2008 /
 
Köszönöm, akkor elkezdek utánajárni.
(#) trudnai válasza ArBalya hozzászólására (») Jún 16, 2008 /
 
Szia,

Azt hittem hogy valami sajat fejlesztesu dolog, azert gondoltam jobb latni a kapcs rajzot. A forrast meg mindig nem latom, ha jol ertem kirajzolsz ket dolgot, majd vissza a ciklus elejere es ismet? Ha tobb dolgot rajzolsz ki akkor sem tortenik semmi hiba? Mi tortenik a ciklus elejen/vegen ami befolyasolhat barmit is?
(#) atiotezer válasza ArBalya hozzászólására (») Jún 17, 2008 /
 
Köszönöm a segítséget!
(#) wg_kezdo hozzászólása Jún 18, 2008 /
 
Szeretnék egy kis raktárkezelőt készíteni AVR+LCD kijelzővel.
Összesen 5 gomb lenne rajta és egy LCD kijelző a szoftvert meg tudom írni, de ha van valakinek tapasztalata a segítségeteket kérném, hogy mi az a minimum konfig amivel ilyet kivitelezni lehet.
A főbb paraméterek:
max 50 termék mindegyiknek max 20 betűs név.
Kb annyit tud, hogy két gombbal lehet fel-le lépkedni a termékek között és a másik két gomb segítségével az adott termék mennyiségét növelni, csökkenteni.
Ezen kívül a harmadik gomb segítségével a termék nevét szerkesztő módba teszi és szintén a gombokkal át lehet írni.
Új terméket pedig az első termék előttre érve vihet fel az ember.

Vagyis a max tárhely ami kell 1kb de ez jó lenne úgy, hogy flash vagy valami hasonlóba legyen tárolva.
Ezen kívül valami olyan kijelző amit basic-ben könnyen lehet vezérelni.

(ez egy módosított koncepciója az előző hozzászólásomnak pár sorral feljebb). Itt a ktg fontos szempont.
(#) TavIR-AVR válasza wg_kezdo hozzászólására (») Jún 18, 2008 /
 
Én ATMega16-os családdal esnék neki. Itt lábkompatibilis a M32/M644 chip is.

Sorosportot mindenképp raknék rá, és terminálból is elérhetővé tenném a "gombfunkciókat". Így - legalább az elején - Hyperterminálból feltölthetőek az alapadatok.

Én raknék mellé órát, illetve nagy I2C EEPROMot (1Mbit - 24LC1024). Így a raktármozgás is eltárolható.

De ha val pluszba pár eFt, akkor M128 és SDkártya. Ott meg a mozgások 2GB fileméretig pakolhatóak, akár TEXT file-ba is.

Kijelző Bascom alapon:
- minden karakteres, ami KS066 vagy HD44780-as chippel szerelt (1x16....4*20). A 4*40-es kezelését még nem ismerem...
- grafikusból max 256*256-os területű, T6963C, SED1535, KS0108-as chippel szereltek lehetnek.


De lehet hogy én egy régi PC-t raknék be, és arra írnám meg a szoftvert. költségben ugyanott vagy (PII-es gép+monitor ~10eFt...).
(#) wg_kezdo válasza TavIR-AVR hozzászólására (») Jún 18, 2008 /
 
Köszönöm feljegyeztem, megcsinálom szimulátorban a programot és utána ha lesz rá időm bevásárolok és nekiesem.

A számítógép azért nem jó, mert ahol használnám ott nincs 220 sőt hely sincs max egy kisebb doboznak.
Viszont égető a probléma és a család hölgy tagjai is támogatnák a megvalósítást (többet ér nekik, mint egy sima villogó annak csak én tudok örülni ).

A mozgásokat nem kell tárolni mivel ez "házi használatra" lesz.

A másik kérdés, hogy ezzel megvalósítható lenne, hogy hordozható legyen? Itt főleg a tápellátás miatt kérdem, hogy mire lenne szüksége.

A munkafolyamat kb annyi lenne, hogy:
1. vásárláskor lenullázom a teljes bevásárlólistát (alias készlet)
2. Ahogy veszem ki az éléskamrából a termékeket és észreveszem, hogy elfogyott szépen beviszem, hogy miből mennyit kell venni
3. amikor vásárlási nap van fogom a kis kütyüt és
a, letöltöm az adatokat a laptopra az meg kinyomtatja, feltölti a szerverre ahonnan wap-on elérem stb...
b, leakasztom a falról a dobozt és száguldok a tescoban kezembe a dobozzal ahol szépen pipálom a listán lévőket

Itt a "B" megoldásnál lényeges, hogy elmegy-e mondjuk 2-3 ceruhaelemmel, mert az lenne a tökéletes megoldás.
(#) TavIR-AVR válasza wg_kezdo hozzászólására (») Jún 18, 2008 /
 

Ceruzaelem elmegy, de ekkor az LCD kezelést neked kell kezelned. (használaton kívül lekapcsolod, és háttérvilágítás nem lehet. Vagy PLED alapú.

És az LCD-ből 3.3V-s kell!

Én terveznék rá PS2 csatit. Erre - később - pl. vonalkódleolvasó is kerülhet. Amit humán nyomkod, az hibázik....
(#) wg_kezdo válasza TavIR-AVR hozzászólására (») Jún 18, 2008 /
 
Ebben igazad van amit humán nyomkod.....
A PS2 nem rossz ötlet, de egyenlőre mivel kezdő vagyok megelégszem az alapverzióval.

Mindenesetre bíztató, hogy megvalósítható.
Utánanézek, hogy mit hol és mennyiért lehetne megkapni.
(#) wg_kezdo hozzászólása Jún 22, 2008 /
 
Elkezdtem megcsinálni a raktárkezelő alkalmazást és már az elején problémába ütköztem.

A szimulátorban nézegetem lévén nincs AVR-em meg ilyenek. A waitms-t mintha nem hajtaná végre illetve a kurzort sem látom a kijelzőn. Mivel nincs kedven saját kurzorvezérlőt írni ezért gondoltam inkább kérdeznék, hogy ez normális működés vagy meg lehet valahogy csinálni, hogy rendesen működjön a szimulátorban is.

Most ha pl 1másodpercenként szeretnék scrollozni valamit (példaprogramban is van ilyen) akkor azt szinte nem is lehet látni olyan gyorsan lezavarja a szimulátorban.
(#) TavIR-AVR válasza wg_kezdo hozzászólására (») Jún 22, 2008 /
 
Bascom alatt:

Cursor Off Noblink 'hide cursor
Cursor On Blin 'show cursor
Display Off 'turn display off
Display On 'turn display on
(#) trudnai válasza wg_kezdo hozzászólására (») Jún 22, 2008 /
 
Bocsanat, hogy kozbe szolok, de gondolom tudod, hogy epp forditva szoktak a raktarnyilvantartok mukodni? Azaz vasarlaskor beviszed mibol mennyit vettel, igy felall a keszlet, mikor kiveszel valamit beviszed mennyit vettel ki, igy mindig kepben tudsz lenni mekkora a raktarkeszlet.

Alkalmazas pedig csinalhat olyat, hogy lekerdezed mi fogyott ki teljesen vagy mi fogyott ki "veszesen", azaz ha azt is eltarolod mekkora az adott termekbol a minimum amennyinek raktaron kell maradnia akkor bevasarlaskor ezeket is felhozza. Sot kiszamolhatja, hogy mennyit kell venni, hogy a kivant mennyiseg ismet a raktarba keruljon.

En I2Cs EEPROM helyett inkabb SD kartyat dobnek ra es akar file rendszer nelkul mint egy EEPROM hasznalnam a kartyat. Ugye az SPI-s es igy talan nagyobb sebessegu adatelerest is lehet hasznalni, azonkivul PC-n, pl Linux alol lehetne vele backupot kesziteni ill ott is fel lehetne dolgozni az adatokat szukseg eseten.
(#) wg_kezdo válasza TavIR-AVR hozzászólására (») Jún 22, 2008 /
 
Ezt használtam.

A probléma a késleltetéssel van egyszerűen nem reagál a szimulátor a waitms utasításra.

pl:
LCD "1"
waitms 1000
LCD "2"

Itt csak a "2"-t látom mintha nem is lenne késleltetés.
(#) wg_kezdo válasza trudnai hozzászólására (») Jún 22, 2008 /
 
Elég szerencsétlenül neveztem el inkább bevásárlólistának kéne neveznem. Fordítva működik mivel amikor vásárolunk (általában 1-2 hónapra előre) nincs erőnk bevételezni a termékeket elég behurcolni .
Viszont a polcokon mindig látjuk, hogy melyikből mennyi van csak az összeírásnál az "üres" helyeken lévőkre nem emléxünk így lemarad a listáról.

Az EEPROM-ot nem lehet bármennyiszer írni ha jól olvastam ez igaz?

Nekem is az SD kártya jutott eszembe csak nem tudom el lehet-e érni közvetlenül a memóriát kb úgy, hogy pl megcímzem egy bizonyos helyét és oda írok-olvasok (lásd C64 poke, peek)
(#) trudnai válasza wg_kezdo hozzászólására (») Jún 22, 2008 /
 
Ja, ertem - epp ezert jobb egy raktar kezelo, mert egyszer beviszed a termeket az mindig ott marad - max 0-s mennyiseggel.

EEPROM-ot sem lehet akarhanyszor irni, SD-t sem. Epp ez a bajuk az USB flash diskeknek is meg az osszes tobbi ilyen vacaknak. Ezert odzkodnak az emberek az Asus EEE PC-tol meg a Laptop for a Child dolgoktol.

Hogy hasznyszor lehet irni pontosan nem emlekszem, SD-nel valami 100ezer remlik, EEPROM-nal millio koruli (kerdes hany bevasarlast kell kibirnia ) Ha pl egy termek mennyiseget 10x modositod egy bevasarlas alkalmaval (ennyiszer veszel ki es jegyzed be elfogyott) akkor 100ezer irast feltetelezve ugye 10ezer bevasarlast kibir. Ha nem az egesz kartyat foglalja le, akkor lehet olyat csinalni, hogy nem mindig az elejet bizeralja az ember, hanem kijelolt blokkokon megy vegig mindig egy masik blokkon dolgozva - igy novekszik kvazi az elattartam.

Lehet SRAM-ot is hasznalni akar, es akkor egy backup elemmel akar evekig is megorzni a tartalmat, a gyakorlatban korlatlanul irhato, de szerintem ide felesleges lenne.
(#) TavIR-AVR válasza wg_kezdo hozzászólására (») Jún 23, 2008 /
 
Bascom alatt az AVRDOS-t nézds med. Ez a legegyszerűbb... (M128 vagy M644 chip kell legalább mellé.
(#) wg_kezdo válasza trudnai hozzászólására (») Jún 23, 2008 /
 
Igen én is olyan 10.000-et hallottam ami szerintem bőven elég.

Itt is ott marad a termék 0 mennyiséggel amikor vásárolok vagyis akkor eltűnik, de amikor átváltok "otthoni" módra akkor előjön az összes termék 0 mennyiséggel.

Ez az AVRDOS mi? Egy dosos program? Kerestem, de nem találtam sehol
(#) TavIR-AVR válasza wg_kezdo hozzászólására (») Jún 23, 2008 /
 
AVR-DOS:

Bascom része, SD kártyák kezelése, mintha DOS alól tennéd (FAT16, könyvtár létrehozás, file-k macerálása....).
(#) wg_kezdo válasza TavIR-AVR hozzászólására (») Jún 23, 2008 /
 
Ja értem, nem is lehet rossz megoldás.

A sebesség problémára nemtud valaki megoldást?
(#) TavIR-AVR válasza wg_kezdo hozzászólására (») Jún 24, 2008 /
 
Sebesség? Ha az írási metódusra gondolsz, akkor SD kártya intelligensen tologatja a szektorokat. Legalábbis a SanDisk adatlapja alapján. A Kingston is. Hogy a Noname mit tesz...?
(#) wg_kezdo válasza TavIR-AVR hozzászólására (») Jún 24, 2008 /
 
A waitms utasításra, amit fent írtam.
Egyszerűen figyelmen kívül hagyja a szimulátorban és nem tudom miért .

(#) TavIR-AVR válasza wg_kezdo hozzászólására (») Jún 24, 2008 /
 
Ha bascomban vagy, és $sim direktívával fordítod, akkor tényleg. Ugyanis ez utasítja afordítót, hogy a várakozásokat (nop, Waitus, Waitms, wait stb. ) hagyja figyelmen kívül.
(#) wg_kezdo hozzászólása Jún 25, 2008 /
 
Tényleg ez volt a probléma, most már jól működik.
A másik kurzoros gondom nem oldódott meg sajnos ezért abban még mindig a segítségeteket kérném.
Bemásolok ide egy kis progit ennél elvileg látszania kéne a kurzornak, de mégsem látszik.

  1. $regfile = "2313def.dat"
  2. $crystal = 4000000
  3. '$sim
  4.  
  5. Dim Pos As Byte
  6. Config Portd = Input , Output
  7. Dim X As Byte
  8. Dim Y As Byte
  9. Dim Dx As Integer
  10. Dim Dy As Integer
  11. X = 1
  12. Y = 1
  13. Dx = 0
  14. Dy = 0
  15.  
  16.  
  17. Display On
  18. Cls
  19. Cursor On , Noblink
  20. Do
  21.   Locate Y , X
  22.   Lcd "P"
  23.   If Portd = 1 Then Dx = 1
  24.   If Portd = 2 Then Dx = -1
  25.   If Portd = 4 Then Dy = 1
  26.   If Portd = 8 Then Dy = -1
  27.   If X = 1 And Dx = -1 Then Dx = 0
  28.   If X = 16 And Dx = 1 Then Dx = 0
  29.   If Y = 1 And Dy = -1 Then Dy = 0
  30.   If Y = 2 And Dy = 1 Then Dy = 0
  31.   If Dx <> 0 Or Dy <> 0 Then
  32.     Waitms 50
  33.     Locate Y , X
  34.     Lcd " "
  35.   End If
  36.   X = X + Dx
  37.   Y = Y + Dy
  38.   If Dx <> 0 Or Dy <> 0 Then Portd = 0
  39.   Dx = 0
  40.   Dy = 0
  41. Loop
  42. End
(#) wg_kezdo hozzászólása Jún 25, 2008 /
 
És egy utolsó kérdés mielőtt még nekiállnék bevásárolni:
  1. Do
  2. Deflcdchar 1 , 32 , 32 , 32 , 16 , 30 , 31 , 32 , 32        ' replace ? with number (0-7)
  3. Cls
  4. Locate 1 , 1
  5. Lcd Chr(1)                                                  'show the character
  6. Waitms 10
  7. Deflcdchar 1 , 32 , 32 , 16 , 30 , 31 , 32 , 32 , 32        ' replace ? with number (0-7)
  8. Cls
  9. locate 1,1
  10. Lcd Chr(1)                                                  'show the character
  11. Loop
  12. End


A fenti kis program jól működik szimulátorban, de élek a gyanúperrel, hogy elég durva megoldás lenne a grafikus megjelenítésre. A fenti logikával szeretnék játékot készíteni és mivel csak 7 karakter módosítható más módon nem tudom elkészíteni azt a kis alap grafikát amit szeretnék.
Működne ez a megoldás élesben is? (gondolok itt arra, hogy lassan írja át a betűkészletet vagy esetleg nem lehet "ész nélkül" írni stb...)
(#) TavIR-AVR válasza wg_kezdo hozzászólására (») Jún 25, 2008 /
 

.
.
.

Display On'nem kell

Cursor On , Noblink

Cls

.
.
.
(#) TavIR-AVR válasza wg_kezdo hozzászólására (») Jún 25, 2008 /
 
Nem jó.

Config LCD=....
DefLCDChar 1,....
DefLCDChar 2,....


cls

LCD {001};" ";{002}....

Újradefiniálások közt nem törölgetjük a képernyőt, mert kiírás villog. Ha van 8 hely definiálni, tessék kihasználni!
Átdefiniálás a köv 8-ra a képernyő _törölt_ állapotában lehet csak 8azaz amikor nincsenek kinn a definiált karakterek. Reptében változnak!
(#) wg_kezdo válasza TavIR-AVR hozzászólására (») Jún 25, 2008 /
 
Tényleg működik. Nagyon szigorúan követtem gondolkodás nélkül a helpet .

Mindenesetre ki fogom használni a 8 karaktert , de így már meg tudom csinálni a jó kis repülős játékom amit még anno ugyanezzel a technikával videoton tv computerre írtam 11 évesen.

Ha elkészült majd feltöltöm ide.
Most így néz ki ez így működik? (valóban jó lenne, ha nem villogna, szimulátorban tök jól megy)
  1. Do
  2. Deflcdchar 1 , 32 , 32 , 32 , 16 , 30 , 31 , 32 , 32        ' replace ? with number (0-7)
  3. Locate 1 , 1
  4. Lcd Chr(1)                                                  'show the character
  5.  
  6. Waitms 10
  7. Deflcdchar 1 , 32 , 32 , 16 , 30 , 31 , 32 , 32 , 32        ' replace ? with number (0-7)
  8. Locate 2 , 1
  9. Lcd Chr(1)                                                  'show the character
  10.  
  11. Loop
  12.  
  13. End
(#) wg_kezdo hozzászólása Jún 25, 2008 /
 
Másik kérdésem, vettem egy jó nagy próbapanelt (dugdosóst) Először azon szeretnék elkészíteni egy olyan kapcsolást, hogy 4 gomb+AVR+Kijelző. Megoldható szerintetek?
(#) Topi válasza wg_kezdo hozzászólására (») Jún 25, 2008 /
 
Igen. Csak rajtad múlik. Blankolj meg egy halom UTP, STP vagy FTP kábelt.
Bár ha rám hallgatsz sokkal jobb a fali STP. (Az a merev drótos) A sodrott dróttal még macerák vannak.
(#) wg_kezdo válasza Topi hozzászólására (») Jún 25, 2008 /
 
Ez nem lesz gond van 40m hálókábelem ami valahol meg van törve, gondolhatjátok mennyi kedvem van megkeresni, hogy hol....

Amúgy vettem hozzá 140db vezetéket is vagy mit, hogy könnyebb legyen. Most már csak az AVR-t várom hozzá, hogy megvegyem.
Következő: »»   58 / 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