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   81 / 840
(#) wg_kezdo hozzászólása Nov 19, 2008 /
 
Wav lejátszót szeretnék készíteni amihez a következőt gondoltam ki:
Egy AVR "után" kötök egy A/D konvertert és egyszerűen kiküldöm a wav file byte-jait. (persze csak 8 bit és mondjuk elfogadható sebesség).
A kérdés, hogy jó irányba indultam el vagy teljesen hülyeség?
(ilyen konvertert 5-600 Ft-ért láttam ezek jók hozzá vagy komolyabb kell?)
(#) TavIR-AVR válasza Last_Scout hozzászólására (») Nov 19, 2008 /
 
Bascom mint szerkesztő és mint szimulátor

Bascom szimulátorai, hibakeresés.

Amúgy a forráskódból a $sim utasítást hagytad ki. Ekkor a várakozások is szimulálódnak....
(#) TavIR-AVR válasza wg_kezdo hozzászólására (») Nov 19, 2008 /
 
Ez is megoldás. Kérdés, hogy
- R/2R DA konverter nem elég jó?
- R-RR konverter (1,5 bites) lejátszó nem elég?

A VAW hol tárolódik?
I2C EEPROM, SD kártya vagy SPI memória?
(#) icserny válasza wg_kezdo hozzászólására (») Nov 19, 2008 /
 
Idézet:
„Egy AVR "után" kötök egy A/D konvertert és egyszerűen kiküldöm a wav file byte-jait.”

A lejátszáshoz ne A/D hanem D/A konvertert keress!

8 bites felbontást esetleg a mikrovezérlő PWM kimenetén is tudsz produkálni, tehátmég konvertert sem muszáj venni.

Ha D/A konvertert akarsz használni, akkor már érdemesebb valami igényesebb megoldást összehozni (pl. 16 bites D/A). MAXIM MAX541 pl. 8 lábú, de 16 bites, s SPI kompatibilis vezérlésű.
(#) icserny válasza icserny hozzászólására (») Nov 19, 2008 /
 
Mégegy ajánlat:

Cirrus Logic CS4334-KSZ 8-Pin, 24-Bit, 96 kHz Stereo D/A Converter

Adatlapja itt található
(#) zsuscsinyo válasza TavIR-AVR hozzászólására (») Nov 19, 2008 /
 
Na kreáltam egy másik progizót, kifogástalanul működik Viszont most Attiny13-ra cseréltem a Mega8-at. Szoftveres UART-tal küzdök éppen de nemigazán akar még összejönni.
(#) TavIR-AVR válasza zsuscsinyo hozzászólására (») Nov 20, 2008 /
 
Bascomban, minta:

'The ATTiny13 is used.
$regfile = "ATtiny13.dat"
$crystal = 1200000

Config Portb.2 = Output
Led Alias Portb.2
Config Adc = Single , Prescaler = Auto , Reference = Internal

Dim Adcin As Word

Open "comb.1:9600,8,n,1" For Output As #1
Open "comb.0:9600,8,n,1" For Input As #2
Start Adc

Do
Set Led
Waitms 500

'get adc reading on channel 3 (pin 2 on attiny13)
Adcin = Getadc(3)
Print #1 , "adc ch#3: " ; Adcin
Reset Led
Waitms 500
Loop

End
(#) wg_kezdo válasza icserny hozzászólására (») Nov 20, 2008 /
 
Valóban, elírtam. Szóval Digitálisról Analógra átalakító .

Ezt néztem ki hirtelen:
DS1809-100

A PWM kimenet is érdekes lehet csak nincs meg hozzá a megfelelő ismeretem, de utánanézek.

Az igényesebb megoldás pedig erősen pénzfüggő illetve, hogy szükséges-e.
Szinti lenne belőle a végén így először egy egyszerűbb megoldást akarok kipróbálni.
A D/A átalakítót azért gondoltam, mert anno írtam assembly+pascal párossal szinti programot dos alá így ha csak "ki kell küldeni" a jelet akkor talán egyszerűbb.
(#) wg_kezdo válasza TavIR-AVR hozzászólására (») Nov 20, 2008 /
 
Utánanézek, még nem hallottam a R/2R és az R-RR konverterekről.
A Wav tárolását természetesen valamilyen memória kártyán gondoltam, de első körben elég egy szinuszos zenét előállítani utána jön majd a tárolás. (szépen lépésenként) .

Anno LPT-re is készítettek hangkártyát, de emlékeim szerint ott csak pár ellenállás kellett hozzá?
(#) icserny válasza wg_kezdo hozzászólására (») Nov 20, 2008 /
 
Én ezt ajánlottam. A www.ret.hu-nál is szokott lenni, de most éppen nincs raktáron. (ÁFÁ-val 700 Ft volt utoljára, tehát nem egy ökör ára...)
(#) Szárnyas válasza wg_kezdo hozzászólására (») Nov 20, 2008 /
 
Erre az LPT port-os DAC-ra én is emlékszem, el lehetett készíteni ellenállás létrából vagy valamilyen DAC IC-vel is, .mod-okat hallgattunk vele, meg elvétve néhány játék is használta.
COVOX-nak hívták, ha jól emlékszem.
(#) icserny hozzászólása Nov 20, 2008 /
 
(#) wg_kezdo válasza Szárnyas hozzászólására (») Nov 20, 2008 /
 
Azaz, a régi szép idők .
a .mod még 4 csatornán is csodákra volt képes sok zenét írtam amíg az impulse trackert nem kezdtem el használni.

Na nekilátok átnézem mit tudok kihozni belőle.
(#) zsuscsinyo válasza TavIR-AVR hozzászólására (») Nov 20, 2008 /
 
Köszi a segítséget közel állok már a sikerhez épp csak ~3ms az eltérés az elvárttól.. Órajelet hiába állítok az csak a késleltetést befolyásolja, ha 8-as osztás van az órajelen az túl sok, ha nincs rajta akkor meg túl gyors bps-t hiába állítok nem találom a köztes időt, megint ugyanaz vagy túl sok vagy túl kevés

(Amúgy ez még az én progim) (Meglátszik hogy program beépített rutinja... )

Küldök 2 képet amin látszik

üdv
(#) TavIR-AVR válasza zsuscsinyo hozzászólására (») Nov 20, 2008 /
 
Ajjaj. Lemaradtam... Mihez kell ekkora pontosság?

Fix órajel?
(#) zsuscsinyo válasza TavIR-AVR hozzászólására (») Nov 20, 2008 /
 
Nyílt lapokkal: MikroC-vel programozok, beépített rutint használok, az első képen egy működő még PIC-es UART képe látható 1200 baud sebességgel, jelenleg a Tinny13-at nem tudom így belőni. A működőnek (PIC-es) a teljes ciklus ideje: 8,368mSec, a másiknak (Tinny13) meg 5,144mSec. Csináltam egy vevő részt is, ami a PIC es távirányító jelét sikeresen veszi de ezt nem. ezt akarom elérni hogy detto ugyanúgy küldje a jelet remélem most érthetőbb voltam
(#) zsuscsinyo válasza zsuscsinyo hozzászólására (») Nov 20, 2008 /
 
Jéé azthittem nagyobb problémát jelent ez nekem Egész egyszerűen írtam én egy rutint (még kezdetleges) Tökéletesen viszi. Íme:

char port;
char i;
char a;

void var(){
Delay_us(800);
}

void goo(){
PORTB.B4 = 1; //Nullazas
var();
PORTB.B4 = 0; //START bit
var();
PORTB.B4 = port.B0; //0.Bit
var();
PORTB.B4 = port.B1; //1.Bit
var();
PORTB.B4 = port.B2; //2.Bit
var();
PORTB.B4 = port.B3; //3.Bit
var();
PORTB.B4 = port.B4; //4.Bit
var();
PORTB.B4 = port.B5; //5.Bit
var();
PORTB.B4 = port.B6; //6.Bit
var();
PORTB.B4 = port.B7; //7.Bit
var();
PORTB.B4 = 1; //STOP Bit
var();
}
void main() {

Delay_ms(100);
DDRB = 0b010000;
PORTB = 0b11111;


do{
port.B0 = ~PINB.B0;
port.B1 = ~PINB.B1;
port.B2 = ~PINB.B2;
port.B3 = ~PINB.B3;
port.B4 = 0;
port.B5 = 0;
port.B6 = 0;
port.B7 = 0;

a = port; // Adat másolása
port = a * 11; // 11-el szorozni az értékeket (karakterekhez)

goo();
Delay_ms(500);

}while(1);

}
(#) trudnai válasza zsuscsinyo hozzászólására (») Nov 21, 2008 /
 
Hat mindenesetre erdekes ez a MicroC ha egy sima char-nak deklaralt valtozon mukodik a bitfield... Ne lepodj meg azon ha ez a kod mas forditonal nem megy - _az_ a normalis, nem az amit most meg tudsz csinalni igy
(#) zsuscsinyo válasza trudnai hozzászólására (») Nov 22, 2008 /
 
Oké meggyőztél! WinAVR-rel viszont még jócskán vannak gondjaim, mint pl. egyes változók bitjeinek értékét más változónak a bitjére állítani, nah ez értelmes lesz

mondjuk nyomógomb kezelés:

PORTC.4 = PINB.4 (tudom hogy nem ilyen a szintaktika)

vagy akár változók esetében: a_valtozo.1 = b_valtozo.5 ...

A PORTC 4.bitje vegye fel a 4.biten levő gomb értékét.
Esetleg tudnál ebben segíteni?
(#) ZLED hozzászólása Nov 22, 2008 /
 
Sziasztok!

Hogy kell AVR-el frekvenciát mérni? Valaki megtudja mondani? és source codeot tud küldeni?
(#) tibi0531 hozzászólása Nov 22, 2008 /
 
Mérni kell a bejövő két impulzus közötti időt (a timer capture üzemmódja igen hasznos ilyen esetekre), vagy számolni kell, hogy adott idő alatt hány impulzus érkezik.

Source kódot találsz a neten. Googli a barátod
(#) TavIR-AVR válasza ZLED hozzászólására (») Nov 22, 2008 /
 
(#) TavIR-AVR válasza TavIR-AVR hozzászólására (») Nov 22, 2008 /
 
(#) molnarp hozzászólása Nov 23, 2008 /
 
Valaki legyen szíves megmondani hogy az alábbi rajzon helyes-e az ft232rl és a tinny2313 közötti RXD-TXD lábak bekötése. Vagy talán keresztbe kéne őket kötni?
(#) icserny válasza molnarp hozzászólására (») Nov 23, 2008 /
 
Az adatlapok alapján én helytelennek tartom az összekötést, s ezt erősíti meg az Arduino Diecimila kapcsolási rajza is.
(#) TavIR-AVR válasza molnarp hozzászólására (») Nov 23, 2008 /
 
Mintha már ez a kérdés lett volna.....

A Tx-Rx esetén a lábakat _mindíg_ keresztbe kell kötni.
(#) Damian666 hozzászólása Nov 23, 2008 /
 
Hellósztok. A következő a problémám. Nemrégiben vettem egy stk 500-ast, avr studio 4-el programoztam attiny 45-ös prockót, meghalt a rendszerem, vírus miatt, majd új win, és minden progit ujra szettem netről. De miután ujra telepítettem az avr studiot, csak ujab verziót találtam, mert a régiek 1 hibaüzenettel leáltak a telepítéssel. De az újab verzió a az:
AVR studio 4 version:4.15 -az stk 500-asommal úgytűnik nem kompatibilis. Frissítést kér, majd mikor leokézom, kiírja hogy nem találja a programmert, és kilép. ha meg figyelmen kívül hagyom, és csak az procit törlöm majd felírok rá valami progit, lelassulva működik. Mi lehet a probléma? honnan tudnék nomálisan működő avr studió4 et leszedni?
(#) zeusz7 válasza Damian666 hozzászólására (») Nov 24, 2008 /
 
Nekem is ugyanez volt, amikor felraktam az új AVR Studiot, de ez megoldotta: Bővebben: Link

Miután felraktam, ugyanúgy frissítést kért, de ha azt nyomtam, hogy mégse akkor hibátlanul belépett a programozó menübe.

Ha mégse menne, akkor ide felraktam egy régebbi AVR Studiot:Bővebben: Link
(#) ReFi válasza Damian666 hozzászólására (») Nov 24, 2008 /
 
Gyári programozod van vagy utánépített?
Én a HEstore-bol megveheto AVR ISP kitet vettem meg.
Nekem is frissiteni akar az AVR Studio de ha nemet mondok neki ugy is frankon müködik.

(#) Damian666 válasza ReFi hozzászólására (») Nov 24, 2008 /
 
Én is a kit-et vettem Hestor barátunktól. de nálam az a baj ha nem engedem hogy frissítsen, akkor pl 1 egyszerű sziréna hang beállított sebességnél legalább 4-5x lassabb. mintha lelassulna a progi.
Következő: »»   81 / 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