Sie sind vermutlich noch nicht im Forum angemeldet - Klicken Sie hier um sich kostenlos anzumelden Impressum 
Sie können sich hier anmelden
Dieses Thema hat 4 Antworten
und wurde 486 mal aufgerufen
 Probleme
ekonkts Offline



Beiträge: 121

30.07.2013 18:59
Timer mit ATTiny25 Zitat · antworten

Hallo!

Ich habe ein Problem mit einem ATTiny25 und hoffe, jemand kann mir helfen.
Ich würde gerne einen Timer so programmieren, dass ich jede 1us einen Interrupt bekomme.
Ich habe das folgendermaßen versucht:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 

int main(void)
{
//ShutDown Timer 1, ADC, USI
PRR = (0 << PRTIM1) | (1 << PRTIM0) | (1 << PRUSI) | (1 << PRADC);

//IOs konfigurieren
DDRB |= (d_Output_Pin << 0);
 
//Timer konfigurieren
//Teiler 1
//Compare Match 8
//=> 1us / 1MHz
TCCR1 = (1 << CTC1) | (1 << PWM1A) | (0 << COM1A1) | (0 << COM1A0) | (0 << CS13) | (0 << CS12) | (0 << CS11) | (1 << CS10);

OCR1C = 8;
 
TIMSK |= (1 << OCIE1A);

//Interrupts aktivieren
sei();

while(1)
{
//TODO:: Please write your application code
}

}
 
ISR (TIMER1_COMPA_vect) {
PORTB = ~PORTB;
}
 
 



Leider kommen die Interrupts immer um den Faktor 10 zu langsam ...

Hat jemand eine Idee?

Vielen Dank und viele Grüße

Stephan

---
Kaum macht man's richtig, funktioniert's !

http://www.stephanknoke.de

diezel Offline



Beiträge: 709

30.07.2013 21:31
#2 RE: Timer mit ATTiny25 Zitat · antworten

Hallo Stephan,

ohne jetzt wirklich Ahnung von C zu haben, bin eher in Bascom zuhause:
wie setzt Du die CS13 - CS10-Bits im TCCR1? Da ist glaub ich die Zeile zu lang und wird nicht ganz angezeigt.
Systemtakt geh ich von 8MHz aus. Evtl. schafft der kleine das gar nicht alles in 8 Takten. Probier mal einen höheren Prescaler.


Gruß
Gerhard

-------------------------------------------------------------------------------------------
hier mein aktueller TinyKatalog

nachtdieb Offline




Beiträge: 1.010

30.07.2013 22:23
#3 RE: Timer mit ATTiny25 Zitat · antworten

Zitat von diezel im Beitrag #2
... wird nicht ganz angezeigt...


Hallo Gerhard,
du kannst den Quellcode anklicken und seitlich verschieben. So kann man bis CS13 lesen

Viele Grüße
Klaus

diezel Offline



Beiträge: 709

30.07.2013 22:23
#4 RE: Timer mit ATTiny25 Zitat · antworten

Zitat von ekonkts im Beitrag #1
TIMER1_COMPA_vect

ich glaub diesen Interrupt-Vektor gibt´s bei den Tiny25 nicht, probier mal "TIM1_OVF_vect"

Danke Klaus, hab ich übersehen.

-------------------------------------------------------------------------------------------
hier mein aktueller TinyKatalog

ekonkts Offline



Beiträge: 121

31.07.2013 07:03
#5 RE: Timer mit ATTiny25 Zitat · antworten

Hallo Gerhard, hallo Klaus,

ja, der Systemtakt ist natürlich 8MHz. Habe ich vergessen, dazu zu schreiben.

Den Interrupt-Vektor gibt es. Zumindest wird er angesprungen, denn der Ausgang toggelt. Halt leider nur in der falschen Frequenz.
Und das Invertieren eines Registers sollte der Tiny doch wohl innerhalb 1us hinbekommen ...

Ich habe jetzt zur Strafe eine andere Tiny-Größe genommen. Damit geht es. Aber merkwürdig ist es schon.

Viele Grüße

Stephan

---
Kaum macht man's richtig, funktioniert's !

http://www.stephanknoke.de

 Sprung  

Xobor Forum Software von Xobor
Einfach ein eigenes Forum erstellen