| Author |
Message
|
Smoczy Poziom 16

Joined: 27 Aug 2003 Posts: 348 Location: Kraków
|
#1
21 Oct 2004 12:27 ATmega8 ADC |
|
|
|
Mam pytanie:
czy ktoś próbował zasymulować przetwornik ADC w AVRStudio 4.
W moim przypadku rejestry się zapisują, ale przetwornik nie generuje przerwań.
Prosze o podpowiedzi, czy jest to tylko błąd programu, czy ja coś źle robie (przepisałem kod z pdf-a).
|
|
| Back to top |
|
 |
LordBlick Poziom 23

Joined: 31 Aug 2004 Posts: 3685 Location: Słupsk
|
#2
21 Oct 2004 15:39 Re: ATmega8 ADC |
|
|
|
| Smoczy wrote: |
Mam pytanie:
Prosze o podpowiedzi, czy jest to tylko błąd programu, czy ja coś źle robie (przepisałem kod z pdf-a). |
Konkretnie to z którego pdf-a kolega przepisał ? na której stronie ?
|
|
| Back to top |
|
 |
Google

|
#
21 Oct 2004 15:39 |
|
|
|
|
|
| Back to top |
|
 |
domin0 Poziom 10

Joined: 16 Sep 2003 Posts: 54
|
#3
21 Oct 2004 16:37 Re: ATmega8 ADC |
|
|
|
a moze ma ktos jaks gotowa procedurke w c do odczytu A/D w atmega 8535 i jeszcze wie co zrobic zeby te wartosci nie skakaly tak, pewnie cos zle filtruje
|
|
| Back to top |
|
 |
LordBlick Poziom 23

Joined: 31 Aug 2004 Posts: 3685 Location: Słupsk
|
#4
21 Oct 2004 17:50 Re: ATmega8 ADC |
|
|
|
| domin0 wrote: |
| a moze ma ktos jaks gotowa procedurke w c do odczytu A/D w atmega 8535 i jeszcze wie co zrobic zeby te wartosci nie skakaly tak, pewnie cos zle filtruje |
Przeczytaj Przyjazny Podręcznik Producenta, to nie boli, podobnie jak myślenie, ewentualnie wciśnięcie przycisku "szukaj".
http://www.elektroda.pl/rtvforum/topic188342.html
|
|
| Back to top |
|
 |
mzielin Poziom 18

Joined: 29 Mar 2003 Posts: 482 Location: 3miasto
|
#5
21 Oct 2004 18:38 ATmega8 ADC |
|
|
|
Albo przerzuć się na symulację za pomocą VMLABA.
http://www.amctools.com/
Jest znacznie lepszy wg mnie.
|
|
| Back to top |
|
 |
Google

|
#
21 Oct 2004 18:38 |
|
|
|
|
|
| Back to top |
|
 |
LordBlick Poziom 23

Joined: 31 Aug 2004 Posts: 3685 Location: Słupsk
|
#6
21 Oct 2004 19:47 ATmega8 ADC |
|
|
|
:arrow: mzielin : moja odpowiedź wyraźnie dotyczy kolegi domin0, który wyskoczył w tym wątku jak Filip z konopii.
Co do VMLAB, owszem jest super, sam bym sobie pełną wersję zainstalował, ale póki co w wersji demo tylko do 4k kodu..., a Atmel Studio jest dostępny bez ograniczeń, chociaż już raczej nie używam do emulacji, bo często działania w czasie rzeczywistym są bardziej interesujące...
Radzę sobie w ten sposób, że to co mnie interesuje jest wypluwane na wyświetlacz LCD i tak wyłapuję bugi, ewentualnie robię dump-a do EEPROM-a pod jakimś klawiszem(jak jest akurat w aplikacji klawiatura) albo pinem i zczytuję przez programator, lub też to co potrzebuję wiedzieć, zostaje wysłane RS-232 do PC na terminal.
Light-I
|
|
| Back to top |
|
 |
Tdv Poziom 22

Joined: 27 Aug 2002 Posts: 2263 Location: Śląsk
|
#7
22 Oct 2004 07:30 ATmega8 ADC |
|
|
|
Sprawdź w helpie AVRStudio, do nie dawna nie miało obsługi części analogowej i było to napisane, może w najnowszych wersjach już to wszystko jest, więc muisz co nieco poczytać.
|
|
| Back to top |
|
 |
GienekS Poziom 22

Joined: 12 Oct 2003 Posts: 1964 Location: Tarnowskie Góry
|
#8
22 Oct 2004 10:04 Re: ATmega8 ADC |
|
|
|
Na AVR Studio 4.09 przerwania ADC jeszcze nie działały a 4.10 nie chce się zainstalować. Ja radzę sobie w ten sposób że przerwanie wywołują ustawieniem flagi w symulatorze bo i tak na symulatorze nie jest to to co na faktycznym procku. Przetwornik ADC robiłem ale na ATmega16 i tam było wszystko stabilne. Stosowałem jako napięcie odniesienia to samo napięcie zasilania co przetwornik ADC.
|
|
| Back to top |
|
 |
diodas Poziom 9

Joined: 24 Jun 2003 Posts: 34
|
#9
22 Oct 2004 15:06 Re: ATmega8 ADC |
|
|
|
Ja natomiast mam inny problem z tym prockiem i prosze o pomoc. Czy ktos zauwazyl moze czego brakuje w kodzie, bo jakos sam nie moge dojsc czemu przetwornik nie dziala :(
| Code: |
ADCSRA = (0<<ADPS0) | (0<<ADPS1) | (0<<ADPS2) | (1<<ADEN);
ADMUX = (0<<REFS0) | (0<<REFS1) | (0<<ADLAR) | (0<<MUX0) | (0<<MUX1) | (0<<MUX2) | (0<<MUX3);
ADCSRA |= (1<<ADSC); // Uruchamia konwersje
while (!(ADCSRA & (1<<ADIF)));
ADCSRA |= (1<<ADSC); // Uruchamia konwersje
while (!(ADCSRA & (1<<ADIF))); // Oczekuje na ukonczenie konwersji
lo_val = ADCL;
hi_val = ADCH;
|
Dodam ze chce zmierzyc napiecie na PC0. AREF podlaczone do VCC.
------------------
Juz dziala, wina byla w innej czesci programu
|
|
| Back to top |
|
 |
Google

|
#
22 Oct 2004 15:06 |
|
|
|
|
|
| Back to top |
|
 |
GienekS Poziom 22

Joined: 12 Oct 2003 Posts: 1964 Location: Tarnowskie Góry
|
#10
22 Oct 2004 18:30 Re: ATmega8 ADC |
|
|
|
Proponuję zacząć od mniejszych szybkości przetważania ADC.
Ja to robię tak:
// Procedury przetwornika ADC
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include "uart.h"
#include "adc.h"
volatile u08 Analog;
void ADC_Init(void)
{
outp(BV(ADEN)|BV(ADSC)|BV(ADATE)|BV(ADIE)|BV(ADPS2)|BV(ADPS1)|BV(ADPS0),ADCSRA);
outp(BV(ADLAR)|BV(MUX2)|BV(MUX1)|BV(MUX0),ADMUX);
}
SIGNAL(SIG_ADC)
{
Analog = ADCH;
}
u08 ADC_Result(void)
{
return Analog;
}
|
|
| Back to top |
|
 |
marek_Łódź Poziom 23

Joined: 23 Dec 2004 Posts: 3131 Location: Łódź
|
#11
03 Apr 2005 21:37 Re: ATmega8 ADC |
|
|
|
1. W przykładzie ATMELA w datasheecie ATMega8 (ADC) (chyba) jest błąd
2. AVR Studio w wersjach dotychczasowych (chyba) niespecjalnie (albo wcale) sobie radzi z przetwornikami.
3. Blokowanie programowania szeregowego w trybie programowania szeregowego w ATMega (fuse & lockbity) woła o pomstę do nieba
4. I tak atmelki są super.
Może jakiś błąd w programie z PDF? Zajrzyj jeszcze:
http://www.elektroda.pl/rtvforum/topic265149.html
|
|
| Back to top |
|
 |