will meinen Atmega8 mit dem Timer2 aus dem ADC noise reduction mode herausholen. Nun ist es ja aber so dass das immer bei einem Timer overflow passiert und diese overflows geschehen einfach zu schnell. den prescaler habe ich bereits auf 1024 gesetzt, wie kann ich diesen sleep zusatnd verlängern?
@ Beni (Gast) >will meinen Atmega8 mit dem Timer2 aus dem ADC noise reduction mode >herausholen. OK, aber erwarte vom Noise Reduction Mode keine Wunder. Sooooviel bringt der auch nicht. > Nun ist es ja aber so dass das immer bei einem Timer >overflow passiert und diese overflows geschehen einfach zu schnell. den >prescaler habe ich bereits auf 1024 gesetzt, wie kann ich diesen sleep >zusatnd verlängern? Nimm Timer 1, der ist 16 Bit. Ausserdem muss die CPU nur während der Messung ruhig sein, um das Rauschen minimal zu verbessern. Also nach jeder Messung neu in den Sleep Mode wechseln. Dann reicht auch Timer2. ADC starten Sleep Mode ADC fertig, Interrupt beendet Sleep Mode Alles nochmal MfG Falk
ich kann dioch nicht einfach timer 1 nehmen, denn der weckt nicht aus dem sleep modus? das kann nur timer 2? ich habe noch ein weiters problem: da ich timer2 verwenden muss und dort am gleichen pin auch noch MOSI ist und ich über diese schnittstelle kommuniziere funktioniert dann gar nichts mehr wenn ich den timer2 laufen lasse. hier mein programm: sensor daten über SPI empfangen sleep mode bis timer overflow beginne von vorne der timer2 blockiert irgendwie die SPI schnittstelle? void SPI_Init(void) { /* Set MOSI and SCK output, all others input */ DDRB|= ((1<<PB3)|(1<<PB5)); /* Enable SPI, Master, set clock rate fck/128*/ SPCR|= ((1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPR1)); } TCCR2|=(1<<CS22)|(1<<CS21)|(1<<CS20); //prescaler 1024 TIMSK|=(1<<TOIE2); muss ich da irgendwelche ports noch umschreiben, damit ich die beiden Funktionen dieses Pins nutzen kann?
@ Beni (Gast) >ich kann dioch nicht einfach timer 1 nehmen, denn der weckt nicht aus >dem sleep modus? das kann nur timer 2? Doch. Lies den Artikel. >ich habe noch ein weiters problem: da ich timer2 verwenden muss und dort >am gleichen pin auch noch MOSI ist und ich über diese schnittstelle >kommuniziere funktioniert dann gar nichts mehr wenn ich den timer2 >laufen lasse. ??? Dein Timer wird doch intern getaktet. Was hat MOSI damit zu tun? >der timer2 blockiert irgendwie die SPI schnittstelle? Kaum. Aber du hast vergessen, SS als Ausgang zu setzen. Das MUSS sein. Siehe AVR-Tutorial: Schieberegister MfG Falk
Beni wrote: >will meinen Atmega8 mit dem Timer2 aus dem ADC noise reduction mode >herausholen. > ich kann dioch nicht einfach timer 1 nehmen, denn der weckt nicht aus > dem sleep modus? das kann nur timer 2? Was denn nun? Aus dem ADC noise reduction mode kommst Du mit dem ADC-Interrupt raus, sagt ja schon der Name. Alle Timer und die UART laufen natürlich weiter. Peter
@ Peter Dannegger (peda) >Aus dem ADC noise reduction mode kommst Du mit dem ADC-Interrupt raus, >sagt ja schon der Name. Ja. >Alle Timer und die UART laufen natürlich weiter. NEIN! Nur Timer2 ist verfügbar, UART und Timer0/1 nicht. Siehe [[Sleep Mode]], wär ja sonst sinnlos. Du meinst den Idle Mode. MfG Falk
Falk Brunner wrote: > NEIN! Nur Timer2 ist verfügbar, UART und Timer0/1 nicht. Siehe [[Sleep > Mode]], wär ja sonst sinnlos. Du meinst den Idle Mode. Du hast recht, habs bisher nicht gründlich gelesen. Dann werde ich ihn nicht mehr verwenden, sonst geht ja meine RTC (T0) nach. Und jede PWM müßte dann auch ins Stottern kommen. Is ja richtig gefährlich dieser Sleep-Mode. Peter
@ Peter Dannegger (peda)
>Is ja richtig gefährlich dieser Sleep-Mode.
;-)
Naja, mich würde mal interessieren, wieviel Noise Reduction der WIRKLICH
bringt. Atmel liefert da auch keine konkreten Zahlen, nur allgemeine
Aussagen.
MfG
Falk
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.