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
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   538 / 538
(#) Andrasirex válasza kapu48 hozzászólására (») Vas, 15:16 /
 
Köszönöm,ez nagyon hasznos info,de sajnos nem tudom felhasználni,mert szájbarágósabban kellene.
Elfelejtettem írni hogy valami kezdőknek való leírás kellene.
A feltöltött projektben a programot nem én írtam,csak módosítanom kell egy saját projekthez.
Azért kell osztani 12-vel ,mert az encoderem felbontása 12 ,nekem meg fordulatonként nem 12-t kellene kiíratni a képernyőre hanem 1 et , ahol tizedesek is jól jönnének.
Egy gépen kellene ez eltolódást mérni,ahol a tengely végére felrakom az encodert és 1mm eltolódás a tengelyen 1 fordulat.
(#) kapu48 válasza Andrasirex hozzászólására (») Vas, 16:28 /
 
Ez kel:
uint64_t counter_tmp;
uint64_t mm; // mm tárolása
uint8_t mm12; // maradék mm 12-ed része

function: itoa
<stdlib.h>
Convert integer to string (non-standard function)
http://www.cplusplus.com/reference/cstdlib/itoa/

Csak a változó egész értékét konvertálja stringé.
Ezért ketté kel bontanod a:

counter_tmp = counter; //mivel megszakításból a counter változót folyamatosan állítgatjuk így inkább a kiiratás elött lemásoljuk az értékét, mivel jó esélyel meg fog változni kiirás közben is
mm = counter_tmp/12; // mm számolás
mm12 = counter_tmp - mm * 12; // Maradák számítás.
// itoa(counter_tmp,buf,10); //int -> sztring konverzió
itoa(mm,buf,10); //int -> sztring konverzió mm
….
Talán tudod folytatni?
(#) Andrasirex válasza kapu48 hozzászólására (») Vas, 16:30 /
 
Nem tudom folytatni....
(#) kapu48 válasza Andrasirex hozzászólására (») Vas, 16:54 / 1
 
Ez így már nem segítségkérés, hanem potyázás!
Ezért csak valami fércmű a ki íratáshoz:
  1. itoa(mm,buf,10); //int -> sztring konverzió mm
  2.           
  3.           lcd_puts(buf);            //mm sztring kirakás LCD-re
  4.            buffer_clear(&buf[0]);    //töröljük a sztring buffert
  5.           itoa(mm12,buf,10); //int -> maradék sztring konverzió mm/12
  6.           lcd_puts(",");            // Tizedes vessző kirakás LCD-re
  7.           
  8.           lcd_puts(buf);            //maradék sztring kirakás LCD-re
  9.           lcd_gotoxy(14,1);       //kurzor mozgatás
  10.           lcd_puts("mm");
  11.           _delay_loop_2(0x1fff);    //várunk jó sokat
  12.           buffer_clear(&buf[0]);    //töröljük a sztring buffert
(#) Andrasirex válasza kapu48 hozzászólására (») Vas, 17:00 /
 
Már kezdem érteni...
Nem szeretnék potyázni,ez a 2. program amit szerkesztek. Az elsőt is csak módosítottam szükség szerint. Köszönöm az infókat.Ezt már remélem fel tudom használni.
(#) kapu48 válasza Andrasirex hozzászólására (») Vas, 18:02 /
 
Ha már érted?

Van még lehetőség a:
function div
http://www.cplusplus.com/reference/cstdlib/div/
(#) attti hozzászólása Sze, 18:32 /
 
Sziasztok!
Megszeretném kérdezni tőletek, hogyan tudom egy kondenzátormikrofon kimenetét felerősíteni, annyira, hogy egy Atmega32-es avr tudjon rajta frekvenciát számolni? Ez egy gitárhangolóba lessz.
Segítségeteket köszönöm!
Üdv. Attila!
(#) zombee válasza attti hozzászólására (») Sze, 20:48 /
 
Keress előerősítő kapcsolást, a neten találsz.
Ha az erősítő kimeneti jelszintje kevés, arra már nem kell erősítő: egy tranzisztor megteszi.
(#) attti válasza zombee hozzászólására (») Sze, 21:01 /
 
De az előerősítő után az Atmega32, hogy tudja értelmezni?
(#) TavIR-AVR válasza attti hozzászólására (») Sze, 21:12 /
 
Hulye tipp:
a, ATMega 32 AD bemenetén az ADMUX regiszterrel 10x vagy 200x erősítést összehozni? és utána FFT (Fast Fourier Transform) megnézni a jellemző frekvenciát? Ez zajos környezetben is működik.
b, A belső komparátor és a komparátor kimeneti INT-t számolod? Komparátor egyik része potival leosztva...


FFT tipp:
http://forum.arduino.cc/index.php/topic,37689.0.html
http://elm-chan.org/works/akilcd/report_e.html
A hozzászólás módosítva: Sze, 21:14
(#) attti válasza TavIR-AVR hozzászólására (») Sze, 21:16 /
 
Kérlek egy picit rajzold le, nekem amit elmondtál. Hogy illeszem a mikrofont és melyik portra, lábra?
A hozzászólás módosítva: Sze, 21:18
(#) zombee válasza attti hozzászólására (») 14:41 /
 
Szerintem a kolléga sem gondolja azt hogy a mikrofont közvetlenül kösd az AVR-re.
Először kell az előerősítő, majd jöhet a többi.
(#) attti válasza zombee hozzászólására (») 15:14 /
 
Én se gondoltam közvetlen rákötni, van valami olyan megoldásod, hogy a frekvenciának megfelelő egyenáramot adjon ki a kimeneten?
(#) kapu48 válasza attti hozzászólására (») 15:44 /
 
(#) TavIR-AVR válasza zombee hozzászólására (») 15:59 /
 
Tipp: Kondenzátormikrofon kidob.
Elektret mikrofon berak.
Azonnal megfelelő a jelszint...
Következő: »»   538 / 538
Bejelentkezés

Belépés

Hirdetés
Frissek
2013. Máj, 23. Csü
21:41:39
Jelenleg 523 fő olvassa az oldalt
Online tagok:
Lapoda.hu     XDT.hu     HEStore.hu