Zolo Skrevet 6. november 2015 Del Skrevet 6. november 2015 (endret) Jeg holder på med et prgram som skal blinke på en led samtidig som den lyser i en annen led. Når en bryter blir aktivert skal leden som blinker forandre frekvens samtidig som den andre leden blir skrud av. Når jeg starter prgrammet fungerer det fint i utgangspunktet, men når jeg trykker på knappen blir begge ledene av til jeg slipp knappen og den går tilbake til første steg. Hva er det jeg gjør feil? har sett meg ganske blind på følgende kode. #include <avr/io.h>#include <util/delay.h>#define PUMP PB0#define GLOW PB5#define PREHEAT PB2#define output_low(port,pin) port &= ~(1<<pin)#define output_high(port,pin) port |= (1<<pin)#define set_output(portdir,pin) portdir |= (1<<pin)#define set_input(portdir,pin) portdir &= ~(1<<pin)#define bit_get(p,m) ((p) & (m))int main(void){ bool preheat = false; set_output(DDRB, PUMP); set_output(DDRB, PREHEAT); set_input(DDRB, GLOW); while(1) { int value = PINB & _BV(GLOW); if(value == 0 ) { PORTB = 0b00000100; preheat = true; _delay_ms(100); } else { PORTB = 0b00000000; preheat = false; _delay_ms(400); } if(!preheat) PORTB = 0b00000001; else PORTB = 0b00000101; _delay_ms(100); } return 0;} Endret 8. november 2015 av Zolo Lenke til kommentar
Zolo Skrevet 12. november 2015 Forfatter Del Skrevet 12. november 2015 Det er ingenting som er feil med programmet. Det var PB5 som er reset. Byttet til PB3 og alt fungerte som det skulle. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå