Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //MiniMo -- minimalistic driver firmware for momentary buttons (no blinkies) -- DrJones 2014
- //Up&Down variant ("Werner's UI")
- #define F_CPU 4800000 //use fuses low:0x75 high:0xff
- #include <avr/io.h>
- #include <util/delay.h>
- //change modes here; just change/add/delete values. The "0" is 'off'
- uint8_t modes[]={0, 255}; //PWM values, 5..255 - LEAVE THE "0" THERE
- int main() {
- DDRB=2; PORTB=8; //define PB1 as output and pull-up switch on PB3
- TCCR0A=0b00100001; TCCR0B=0b00000001; //PWM setup, 9kHz
- //uint8_t count=0, lasmode=1, waspressed=0;
- uint8_t mode=0 //define some variables used below
- while(1) { //endless loop
- if ((PINB&8)==0) { //when the button is pressed (PB3 pulled down)
- mode=1; //only one mode is needed, so if button is presses, use 100% mode
- else { // if button is not pressed, just turn off the light
- mode=0;
- }
- OCR0B=modes[mode]; //set PWM level (0 is off)
- _delay_ms(25); //wait a bit before checking again, important for counting
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement