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   300 / 840
(#) suhanc hozzászólása Jan 19, 2011 /
 
Sziasztok.
Tudtok nekem valami égetőt ajánlani ATTINY13-20PU -hoz? Meg ugye ezek többször írhatóak? Szóval tudok "kísérletezgetni" vele?
Köszönöm előre is:suhanc
(#) Knaliret válasza suhanc hozzászólására (») Jan 20, 2011 /
 
Szia!
Ha az adatlapból jól látom, akkor ISP-vel programozható.
Pl. ezzel az STK200 kompatibilis párhuzamos portra csatlakoztatható programozóval. (Link)

Adatlap
(#) puli122 válasza suhanc hozzászólására (») Jan 21, 2011 /
 
Építsd meg ITT a lap alján szereplő programozót, ha van párhuzamos port a gépeden. Garantáltan működik.

Vagy vedd meg EZT ha usb-s kell.

Igen, elég sokszor újraprogramozhatóak.

Jobban jársz egy Atmega8-al, ha most kezdesz programozni. Tudom kicsit elszállt az ára, de könyebb dolgod lesz, mint a kis 8 lábúval.
Ha komolyan gondolod a tanulást, szerintem építs valamilyen tanuló panelt. Például ezt
(#) Fizikus válasza suhanc hozzászólására (») Jan 21, 2011 /
 
En ezt ajanlanam:
Pololu AVR programozo
Postakoltseggel egyutt kb. ugyanannyiba kerul mint a Magyarorszagon is kaphato USB-s programozok, de ez raadasul meg tartalmaz USB-soros (UART-TTL) atalakitot es egy egyszeru szoftveres oszcilloszkopot is. Foleg az USB-soros atalakito lehet nagyon hasznos a kesobbiekben, ha valaki a PC-nek akar adatokat kuldeni.
(#) tivi hozzászólása Jan 21, 2011 /
 
Sziasztok!
ATMega8515-el nem tudom használni az analog comparatort, nem tudnátok valami példát írni? Nagyon megköszönném.
(#) kovacsj hozzászólása Jan 21, 2011 /
 
Sziasztok!

Lehet, hogy nem a legjobb helyen érdeklődök, de a "nagyágyúk" itt is biztosan tudják a választ és nem is pontos kapcsolási rajzot szeretnék, hanem csak nagyvonalakban.

Előre felvett mondatokat (audio) tetszőleges sorrendben milyen áramkörrel (eszközökkel) lehetne lejátszani? Feltételtől függően most az 5. mondat következik, vagy éppen a 9.

Mire kellene rögzíteni és mivel lehetne így ljátszani? Elsősorban mikrokontrolleres megoldás érdekelne, ha van ilyen. Ha nincs, akkor milyen van?

Köszönöm előre is!
(#) Reggie válasza kovacsj hozzászólására (») Jan 21, 2011 /
 
Igy reszletek nelkul a 32 bites AVR-eket javaslom. Van hozza mp3 dekoder lib, ami ingyen elerheto az atmel honlapjan, van FAT fajlrendszer leprogramozva, aminek segitsegevel akar SD kartyarol akar soros flash ic-rol is le tudsz jatszani. A mikrokontroller kb 2000 ft, viszont csak JTAG vagy NEXUS programozo viszi. Refenrenciakent fent vannak a devboardok kapcsolasi rajzai az atmel honlapjan. Ha a szamodra fontos periferiakat ugyan oda teszed mint ahol a devboardon van, akkor nem kell a programozassal sokat vacakolnod, eleg a mintaprogramot kiherelni es a maradek specifikus reszt meg hozzairnod.
Ha keves a hanganyag es nem szamit a hangminoseg akkor vannak erre cel ic-k is, amelyek kozvetlen hang be- es kimenettel rendelkeznek(kis jelszinu), tipusjeluk peldaul ISD-vel kezdodik.
(#) trudnai válasza kovacsj hozzászólására (») Jan 21, 2011 /
 
Nagyvonalakban: A hangot digitalizalni kell A/D atalakito segitsegevel es lejatszani D/A segitsegevel. A hang minoseget ket dolog fogja befolyasolni:

1. A mintavetelezesi frekvencia
2. A digitalizacio felbontasa (A/D ill D/A felbontasa)

A mintavetelezesnel konnyen ertheto hangot mar 4-6kHz-es mintavettel is el lehet erni 4-8 bites felbontasnal.

Ha pl van egy 4kHz / 8 bit per mintavet hangod, az ugye 4000*8 azaz 20 kbps (kilo bit per second) hangot jelent. Azaz minden egyes masodperc szamara 20kB-nyi adattar kell neked (tomoritetlenul es ugye ez mono). Tehat szamolnod kell arra, hogy irdatlan mereto memoria kell neked a feladat elvegzesehez, amit vagy kulso eeprom, vagy mas tarolo egyseg pl SD kartya alkalmazasaval fogsz tudni elerni nagy valoszinuseggel.

Nagy valoszinuseggel egy egyszeru RLE tomoritessel mar eleg sok helyet tudsz magadnak megsporolni, es annak nem tul sok a szamitasi igenye (Windows WAV file-ok pl hasznal[hat]nak ilyen tomoritest).

Szerintem elso korben tuzz ki egy celt, hogy hangot vagy mas hullam format digitalizalsz es tarolsz el. Ha ez megy akkor kovetkezo lepesben probaldd meg D/A atalakitoval lejatszani es szkope-on nezni a kijovo hullamformat. Ha az iz megy akkor kezdj csak el jatszogatni tomoritesekkel es kulso tarolokba torteno tarolasokkal / kiolvasasokkal.
(#) zolee1209 válasza trudnai hozzászólására (») Jan 21, 2011 /
 
Idézet:
„Ha pl van egy 4kHz / 8 bit per mintavet hangod, az ugye 4000*8 azaz 20 kbps (kilo bit per second) hangot jelent. Azaz minden egyes masodperc szamara 20kB-nyi adattar kell”


Nem csak 3.9kB? Ha 8bit a mintavétel felbontása, akkor az 1B. Egy másodperc alatt 4000-szer veszek 1B-os mintát, azaz 4000B/s. Ezt osztom még 1024-gyel és ~3.9kB jön ki nekem...
szerk.: Természetesen másodpercenként!
(#) kovacsj válasza Reggie hozzászólására (») Jan 21, 2011 /
 
Köszönöm neked is és Trudnainak is. Csak egy gondolat merült fel bennem, de ha már így elindítottatok, lehet, hogy végig is csinálom.
Olyan berendezésen gondolkodom, ami helyettesít engem a munkahelyemen bizonyos állandó szövegek elmondása esetében. Így, 25 éve ezt csinálva már kezd unalmas lenni, ezért arra gondoltam, hogy azt a tíz mondatot (esetenként más és más) tíz gombra kötve a berendezésem is elmondhatná helyettem, én csak a gombokat nyomogatnám. (Csak nehogy a feleségemnek is kelljen egy "Vidd ki a szemetet!, Menj a boltba!, Hányszor mondjam ..." nyomógombokkal! )
(#) zolee1209 válasza kovacsj hozzászólására (») Jan 21, 2011 /
 
Hasonló projekt készül nálam is. Én egy 8bites AVR-re fejlesztek. A memória SD kártya, melyre kártyaolvasóval teszem fel a WAV fájlokat. Ezek mono, 8bit/44100-48000Hz mintavételezésűek. A DAC-ot kétfélét próbáltam, egyszer az R-2R létrát, másszor az AVR hardveres PWM-jét. Mindkét esetben azonos minőséget hallottam kishangszórón, illetve kisebb erősítőn is. Ebből a szempontból a PWM előnyösebb, mivel csak 1 lábat foglal. Jelenleg a FAT fájlrendszert bújom, a hangfájlok tetszőleges sorrendű lejátszása miatt...
(#) trudnai válasza zolee1209 hozzászólására (») Jan 21, 2011 / 1
 
Nem, a kis 'k' az az 1000, a nagy 'K' az az 1024 Pl. a kilo hertz az kHz, a kilo byte pedig KB normalisan, de mivel kB-ot irtam ezert 1000 Byte ertendo -- ahogy Beselyo Pista bacsi mondana: Igazam van, nem? De! Naugye?! Mar megint igazam van!
(#) trudnai válasza kovacsj hozzászólására (») Jan 21, 2011 /
 
Idézet:
„Olyan berendezésen gondolkodom, ami helyettesít engem a munkahelyemen bizonyos állandó szövegek elmondása esetében.”


Vedd fel a telefonodra es jatszd le nekik Vagy a szamitogepedre mp3-ba
(#) zolee1209 válasza trudnai hozzászólására (») Jan 21, 2011 /
 
A kB-KB dologban igazat adok, mert ezzel nem vagyok tisztában, én azt a formát használom, amit leírtam... De ettől függetlenül nem értem, Neked hogyan jött ki a 20kB... :no: Ha a 4000-t beszorzom 8-cal, az 32kbps szerintem. Ha ezt osztom 8-cal, hogy bájt-formában kapjam meg az eredményt, akkor 4kBps a végeredmény.
Ami azonos az előző számításommal, ha eltekintek az 1024/1000-rel való osztás különbségétől.

Vagy ennyire lázas lennék?! :zavart2:
(#) kovacsj válasza trudnai hozzászólására (») Jan 21, 2011 /
 
És az alkotás örömével mi lesz?
Lehet, hogy megpróbálom mind a két irányt. Ez elszórakoztat egy jó darabig.
(#) kovacsj válasza zolee1209 hozzászólására (») Jan 21, 2011 /
 
Ez is nagyon érdekes. És lehet, hogy ez a legjobb megoldás.
Tudnál adni linkeket ezzel foglalkozó oldalakhoz?
(#) trudnai válasza zolee1209 hozzászólására (») Jan 21, 2011 /
 
Ja, arra nagyon egyszeru a valasz: Sajnos hexaban hagytam a calculatorom es mar igy Pentekre nem maradt agysejtem, hogy eszre vegyem a hibat (kezdve ott, hogy miert kell 4*8 -hoz nekem a calculator...)
(#) zolee1209 válasza trudnai hozzászólására (») Jan 21, 2011 /
 
:nyes: Ezek után erre jobban figyelek!
(#) zolee1209 válasza kovacsj hozzászólására (») Jan 21, 2011 /
 
Nem tudom, mennyire vagy benne a programozásban.
Szükséges a cél mikrovezérlő adatlapja, a programozási nyelvekkel foglalkozó oldalak is kellhetnek.
Továbbá:
SD kártya Így találhatsz hardveres/szoftveres részleteket...
SD kártya adatlap Igencsak fontos...
FAT fájlrendszer Ez is kellhet majd...
WAV formátum

Talán ezek a legfontosabb kiindulópontok ehhez a fajta megvalósításhoz...
(#) kovacsj válasza zolee1209 hozzászólására (») Jan 21, 2011 /
 
Köszönöm szépen! A programozással elbírok (egy kis innen kapott segítséggel biztosan) a többivel meg majd elbíbelődök valahogyan.
Ha végképp nem megy, akkor majd nem csinálom. Most egyelőre nagy kedvem van hozzá.
Ha legközelebb Soltvadkerten járok (ami tőlünk 30 km) akkor majd megeszünk egy fagyit abban a híres cukrászdában.
(#) zolee1209 válasza kovacsj hozzászólására (») Jan 21, 2011 /
 
Ha a kedv megvan, akkor már csak sok kitartást kívánok az eredmények mellé!
(#) Andre90 hozzászólása Jan 22, 2011 /
 
Üdv Mindenkinek!

Eléggé kezdő vagyok még a programozásban, épp egy öntartó kapcsolást próbálok szoftveresen megoldani, nevezetesen, hogy ha megnyomom a nyomógombot akkor a megszabott LED világítson mindaddig, amíg újra meg nem nyomom ezt a gombot. Az alábbi kódot sikerült eddig összehoznom. A problémám az vele, hogy nagyon bizonytalan a működése, többszöri benyomásra kapcsol csak ki, illetve be.Több késleltetéssel is próbálkoztam, de nem hoztak eredményt. Kérném, aki tud segítsen, minden ötletet szívesen fogadok.

Üdv: André

ontartas_2.c
    
(#) Fizzy válasza Andre90 hozzászólására (») Jan 22, 2011 /
 
A problémádat valószínűleg a gomb pergése okozza

Prell jelenség: nyomógomb megnyomásakor, annak kívánt és fix állapotba történő kapcsolása előtt az érintkezők többször összezáródnak majd szétnyílnak (pattannak) és az elektronika ezt úgy értelmezi, hogy többször nyomtuk meg ugyanazt a gombot.
(#) trudnai válasza Andre90 hozzászólására (») Jan 22, 2011 /
 
Majdnem jo ez! A delay(100) szerintem felesleges, azt szedd ki. Heyette meg az if(temp==0) magjaba tedd be, hogy addig varakozz, ameddig a PINB 3. bitje ujra magas nem lesz (ott is kell egy debouncing, valoszinuleg ott is elegendo egy olan 25ms varakozas).
(#) Ricsi89 válasza Andre90 hozzászólására (») Jan 22, 2011 /
 
Az itt a gond, hogy ha épp akkor nyomod meg a gombot, ha a program épp más résznél jár, mint a hol a gombot kell beolvasni, akkor azt nem fogja megcsinálni. Ha épp a várakozásban van a program, akkor te nyomogathatod a gombot, semmit nem fog érni. A gombot csak abban az egy pillanatban nézi, amikor az adott sorra ér a program. Erre a dologra vannak kitalálva a megszakítások, amik megszakítják egy bejövő esemény idején a program futását és megnézik mi az a esemény. Picit egyszerűsíteni is lehetne a programon, akkor talán javulna a helyzet. Ez a portállítgatás sem értem miért kell, amikor egyszerűen lehet állítgatni egy apró gyári paranccsal a kimenetet. Ez is csak a drága időt pazarolja.
(#) Andre90 válasza trudnai hozzászólására (») Jan 22, 2011 /
 
Köszönöm a gyors válaszaitokat, hirtelenjében a következőre módosítottam a kódot, így a mostani kapcsoló esetén nem villódzik, ha átlagos gyorsasággal nyomom be és engedem el, viszont ha nyomva tartom akkor ugye ismétlődik a ki-be kapcsolgatás, amit szeretnék mindenképpen elkerülni. Erre lenne esetleg ötletetek? Mármint, hogy a gomb folyamatos lenyomása esetén folyamatosan világítson, ne villogjon, de emellett az öntartás funkció is megmaradjon.
Köszönöm előre is.

Üdv: André

ontartas_2.c
    
(#) trudnai válasza Andre90 hozzászólására (») Jan 22, 2011 / 1
 
En errol beszeltem, hogy ezt probaldd meg -- ez nem ment akkor?

  1. for( ; ; )
  2.         {
  3.                 temp=(PINB & 0x08);
  4.                
  5.                 if(temp==0)              //bitenkČnti …S-sel a temp-be beker¸l a PINB 3. bitjČnek ČrtČke( 3. lˇb ČrtČke
  6.                 {                                       // 0x08 Čs 0x00 lehet, 0x00 akkor, ha a nyomŰgomb be van nyomva, tehˇt a GND-n van
  7.                         _delay_ms(25); // 25 eleg, lehet kevesebb is, kacsolodtol fugg...
  8.                         if(led_allapot)
  9.                         {
  10.                                 led_allapot=0;
  11.                                 set_PORTB_bit(4,0);
  12.                                 // ez nem kell! _delay_ms(500);
  13.                         }
  14.                         else
  15.                         {
  16.                                 led_allapot=1;
  17.                                 set_PORTB_bit(4,1);
  18.                                 // ez sem kell! _delay_ms(500);
  19.                         }
  20.                        
  21.                         // na, itt szepen megvarjuk mig a gombot elengeded, errol beszetem...
  22.                         while ( 0 == PINB & 0x80 ) {
  23.                                 // nem kotelezo itt varni, akar ki is lehet venni...
  24.                                 _delay_ms(1);
  25.                         }
  26.                 }
  27.         }
(#) TavIR-AVR válasza kovacsj hozzászólására (») Jan 22, 2011 /
 
Mondjuk ATMega168/328, SD kartya és DAC?
És ha készen van?
AVR-Duino WavePlayer

Mintaprogi, rajz és minden egyéb.
32MB....64 GB kártyakezelés, mono és sztereo Wav állomány, max 22 khz mintavételezési frekvencia....
(#) Andre90 válasza trudnai hozzászólására (») Jan 22, 2011 /
 
Tökéletes, köszönöm szépen a segítséget
(#) kovacsj válasza TavIR-AVR hozzászólására (») Jan 22, 2011 /
 
Ez is nagyon-nagyon jó. Köszönöm szépen!

(Úgy látom, lesz egy beszélő órám is. )
Következő: »»   300 / 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