-
Path: news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: "Greg\(G.Kasprowicz\)" <G...@C...CH>
Newsgroups: pl.misc.elektronika
Subject: czyzby bug w atmega640?
Date: Fri, 6 Feb 2009 18:07:00 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 60
Message-ID: <gmhqnm$kvc$1@inews.gazeta.pl>
NNTP-Posting-Host: abpc11059.cern.ch
X-Trace: inews.gazeta.pl 1233940022 21484 137.138.198.168 (6 Feb 2009 17:07:02 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Fri, 6 Feb 2009 17:07:02 +0000 (UTC)
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
X-Priority: 3
X-RFC2646: Format=Flowed; Original
X-Newsreader: Microsoft Outlook Express 6.00.2900.5512
X-User: gkasprow
X-MSMail-Priority: Normal
Xref: news-archive.icm.edu.pl pl.misc.elektronika:556133
[ ukryj nagłówki ]Hej
mam sobie taki problem w mega640
jest sobie ADC, pedzony z 250kHz, trygerowany z timera T0, sygnalem compare
MATCHA
no i wszystko smiga pieknie, dostaje przerwania od ADC co zalozony czas.
Dla celow debugowych sobie wlaczylem generacje sygnalu prostokatnego na OC0A
Problem jest gdy wylacze przerwanie od T0 - ADC staje, pomimo ze sygnal na
OC0A sobie nadal jest..
Na razie rozwiazalem to tak:
void (TIMER0_COMPA_vect) (void) __attribute__ ((signal, __INTR_ATTRS))
__attribute__((naked));
void (TIMER0_COMPA_vect) (void)
//timer 0 interrupt - not used, T0 is used to generate the ADC clock only
//SIGNAL(TIMER0_COMPA_vect) //debug interrupt ftom timer 0
{
asm("reti");
}
czyli pozwalam mu wejsc do przerwania po to by zaraz wyjsc.
Dziala, ale to nieeleganckie.
Ma ktos z Was pomysl o co chodzi?
Wyglada tak, jakby cos blokowalo przerwanie od ADC. Czyzby nieobsluzone
wylaczone przerwanie od T0? troche to bez sensu, aczkolwiek kiedys
przerabialem taki problem w prockach Cypressa.
konfiguracja ADC:
//ADC init, ext REF,left adjust (8 bit mode), MUX= ADC0, MUX5 switches
between ADC15..8 and ADC7..0
ADMUX = (1<<ADLAR);
//enable ADC,start first conversion, auto trigger enabled,enable ADC
interrupt,
ADCSRA = (1<<ADEN)| (1<<ADATE)| (1<<ADIE)| (1<<ADPS2) | (1<<ADPS0);
//mux5 disabled,enable triggering by the timer T0 compare match A - CTC
mode
ADCSRB = (0<<MUX5) | (1<<ADTS1)| (1<<ADTS0);
konfiguracja T0
TCCR0A = (1<<WGM01) | (1<<COM0A0) ; // mode CTC
TCCR0B = (0<<CS01)|(0<<CS00); // prescaller /64 -> 250kHz -> 4us clk
period,//stop T0 at the moment
OCR0A = 100; //enter some value to avoid generation of excessive interrupts
TIMSK0 = (1<<OCIE0A); // enable T0 interrupts.
ADCSRA |= (1<<ADIF); //clear pending ADC interrupts
ADCSRA |= (1<<ADSC); //start 1-st conversion
Najnowsze wątki z tej grupy
- Wieszanie się przy aktywnym SMP
- Prognozowanie zużycia energii przez PGE?
- Odkurzacz mnie bije :(
- Rapsberry Pi i synchronizacja plików
- RCD 300 mA
- rpi i moduł przekaźników
- Falownik do pompy CO
- Lampa ogrodowa rozłączała różnicówkę
- Inteligentne oświetlenie schodów
- Pytanie do Użytkownika
- Emanuel kiedyś szukał gotowca do chłodzenia leków
- Sprzęty z Lidl-a
- idzie nowe
- Wybuchające pagery
- Jak shakować windę
Najnowsze wątki
- 2024-10-06 Prawdziwy ekologiczny samochód
- 2024-10-05 Stało się...
- 2024-10-05 skodeczka up
- 2024-10-04 Wieszanie się przy aktywnym SMP
- 2024-10-05 Warszawa => Senior Developer React Native <=
- 2024-10-05 Katowice => Administrator IT - Wirtualizacja i Konteneryzacja <=
- 2024-10-05 Warszawa => Senior Software Engineer (C, Java) <=
- 2024-10-05 Warszawa => Menadżer Okręgu <=
- 2024-10-05 Warszawa => Specjalista/tka ds. Zamówień publicznych <=
- 2024-10-05 Warszawa => Senior C Software Engineer <=
- 2024-10-05 Warszawa => Senior PHP Laravel Developer (e-commerce) <=
- 2024-10-05 Warszawa => Full Stack .Net Engineer <=
- 2024-10-05 Warszawa => Data Scientist / Data Engineer (modele predykcyjne) <=
- 2024-10-05 Warszawa => ADMINISTRATOR SYSTEMÓW IT <=
- 2024-10-04 Katowice => Data Scientist <=