Hallo! Mit dem ATtiny2313 steuere ich einen LED-Treiber mittels PWM (über Port PB3) an und möchte, da die Schaltung mit 4 AA-Batterien versorgt wird, den UC in den Power-Down-Mode versetzen sobald die LED über den Taster an Pin PB0 ausgeschaltet wird. Da ich noch selbst Anfänger bin, komme ich hier auch nach intesivem Datenblattstudium nicht zurecht. PWM funktioniert aber einwandfrei. Ich bitte um Hilfestellung! DANKE!!! Hier der C-Code für das Testprogramm: //**************************************************** //* Testprogramm Sleep-Mode ATtiny 2313 * //* Funktion: Taster = on --> LED = on * //* Taster = off --> LED = off * //* LED an PORTB3, Taster an PORTB0 * //**************************************************** #include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> //********************board*************************** #define button_down (PINB & (1<<PIN0)) int main(void) { uint16_t taste=0; ACSR |= (1<<ACD); //Analogcomparator OFF DDRB |= (1 << DDB3); //led output enable DDRB |=((1<<DDB1)|(1<<DDB2)|(1<<DDB4)|(1<<DDB5)|(1<<DDB6)|(1<<DDB7));//Regist er B output enable DDRD |=((1<<DDB0)|(1<<DDB1)|(1<<DDB2)|(1<<DDB3)|(1<<DDB4)|(1<<DDB5)|(1<<DDB6) );//Register B output enable PORTD = 0xFF; // enable Pull-up MCUCR = 0b00100000; // sleep-mode enable (SE-Bit = 1) sei(); //enable Interrupts while (1) { set_sleep_mode(SLEEP_MODE_PWR_DOWN); sleep_mode(); if (button_down) { PORTB = (1<<3); // LED ON taste=1; } else { PORTB = (0<<3); // LED OFF } } }
Habe den Code nicht so genau angeguckt, aber was auf den ersten Blick schon auffällt: wodurch soll den bitte der ATtiny2313 wieder aufwachen? Du hast zwar globale Interrupts gestattet, aber nichts aktiviert, was einen Interrupt durch den Button ermöglichen würde, geschweige denn einen Interrupthandler dafür installiert. (Der muss sein, selbst falls er leer ist, was für deinen Fall wohl genügen würde.)
@ Heimo G. (ledi) > C_code.png > 189,2 KB, 5 Downloads Patsch Wer Quelltext als Screenshot postet muss geschlagen werden! Lies mal was über Netiquette! >Ich bitte um Hilfestellung! DANKE!!! Siehe Sleep Mode. MFG Falk
Mich würde vor allem interessieren, wie er es geschafft hat, Screenshots als PNG zu erstellen, die aber JPEG-Artefakte haben.
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.