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
30.07.2013 21:31
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
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
30.07.2013 22:23
Zitat von ekonkts im Beitrag #1 TIMER1_COMPA_vectich glaub diesen Interrupt-Vektor gibt´s bei den Tiny25 nicht, probier mal "TIM1_OVF_vect"
Danke Klaus, hab ich übersehen.
------------------------------------------------------------------------------------------- hier mein aktueller TinyKatalog
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
Rund um das Forum
| | - Mikromodellbau Magazin
| | - Nettiquette
| | - Änderungen im Forum
| | - Vorstellungen der Mitglieder
| | - Testbereich
Einsteiger
| | - Grundlagen
| | - Probleme
| | - Tipps & Tricks für Einsteiger
Fahrzeuge in 1:87 - 1:220
| | - Bike, Trike, Quad
| | - Baumaschinen
| | - Lieferwagen
| | - PKWs
| | - PKW Rennwagen
| | - LKWs
| | - Race Trucks
| | - Einsatzfahrzeuge
| | - sonstige Fahrzeuge
| | - Modellbahnen
Schiffsmodelle
| | - Arbeitsschiffe
| | - Fähren
| | - Schlepper
| | - sonstige Schiffe
U - Boote
| | - Eigenbauten
| | - Umbauten
| | - Tipps & Tricks
| | - Probleme
Luftfahrt
| | - Flugzeuge
| | - Hubschrauber
| | - Luftschiffe
Module
| | - Trial Module
| | - Straßenmodule
| | - Ortsfeste Funktionsmodelle ( Kräne, Silo...
| | - Tipps & Tricks zum Modulbau
| | - Modellbahn
Zubehör
| | - Fernsteuerungen
| | - Ladegeräte
| | - Empfänger, Servos, Multiswitch
Car System
| | - Eigenbauten & Umbauten
| | - Infracar
| | - DC Car
| | - Probleme
Elektronik
| | - Bootloader System von Mikroantriebe
| | - Grundlagen
| | - Probleme
| | - Tipps & Tricks
| | - Deltang Empfänger DSM2 & DSMX
Mechanik
| | - Eigenbauten
| | - Probleme
| | - Maschinen, Werkzeuge und Zubehör
| | - Tipps & Tricks
Programmierung ( AVR, PIC ... )
| | - Harrys Modellbau Tinys
| | - Projekte
| | - Probleme
| | - Programme zum Download
| | - Bascom
| | - Bascom - Unser Einsteigerkurs
3D - Druck
| | - 3D Drucker
| | - Software zur Konstruktion, sowie zum Druck
| | - Projekte
| | - Kostenlose 3D Modelle zum Download
Ätzen
| | - Ätztechnik
| | - Platinen Ätzen
| | - Bleche Ätzen
| | - Vorlagen Downloads
| | - Probleme
Termine
| | - Ausstellungen
| | - Messen
| | - Treffen
| | - Online Stammtisch (Google Hangout)
Suche
| | - Modelle
| | - Zubehör
| | - Sonstiges
Biete
| | - Modelle und Bausätze
| | - Zubehör
| | - Sonstiges
Dies & Das
| | - Lackierungen
| | - Alles was nichts mit Mikromodellbau zu t...
| | - Euer Arbeitsbereich
Links
| | - Diverses
| | - Händler für Zubehör
| | - Private Homepages
Sprung
Bitte geben Sie einen Grund für die Verwarnung an
Der Grund erscheint unter dem Beitrag.
Spam Netikette Form
Sonstiges
Dieser Beitrag enthält unerwünschte Werbung.
Dieser Beitrag verstößt gegen die Netiquette des Forums.
Beiträge, die IN GROßBUCHSTABEN oder fett geschrieben sind bitte vermeiden.
{[userwarning_empty_error]}
Mitglied per PN benachrichtigen
Es wird der oben genannte Grund verwendet. Klicken Sie hier , um den Inhalt der privaten Nachricht anzupassen
Legen Sie hier den Inhalt der PN-Benachrichtigung fest.
Hinweis: Dieses Mitglied wurde bereits 4 Mal verwarnt. Bei einer weiteren Verwarnung wird das Mitglied automatisch gesperrt.