Skip to content
Snippets Groups Projects
Commit c8a867ed authored by Erik Strand's avatar Erik Strand
Browse files

Update code again

parent 5b492b15
No related branches found
No related tags found
No related merge requests found
...@@ -63,7 +63,6 @@ int main(void) { ...@@ -63,7 +63,6 @@ int main(void) {
// Activate button_pin's pullup resistor. // Activate button_pin's pullup resistor.
PORTA |= button_pin; PORTA |= button_pin;
// Nothing left to do, so just spin.
while (1) { while (1) {
// Turn on the LED when the button is pressed. // Turn on the LED when the button is pressed.
if (PINA & button_pin) { if (PINA & button_pin) {
...@@ -158,7 +157,6 @@ int main(void) { ...@@ -158,7 +157,6 @@ int main(void) {
int bouncy_switch_state = 0; int bouncy_switch_state = 0;
int debounced_switch_state = 0; int debounced_switch_state = 0;
// Nothing left to do, so just spin.
while (1) { while (1) {
// Use the timer to count how long it's been // Use the timer to count how long it's been
// since button_pin changed state. // since button_pin changed state.
......
#include <avr/io.h>
#define switch_pin (1 << PA7)
#define led_pin (1 << PB2)
int main(void) {
// Set the clock prescaler to 1.
CLKPR = (1 << CLKPCE);
CLKPR = (0 << CLKPS3) | (0 << CLKPS2) | (0 << CLKPS1) | (0 << CLKPS0);
// Set the 8 bit timer's prescaler to 1/1024.
TCCR0B |= 0b00000101;
// Configure led_pin as an output.
DDRB |= led_pin;
// Configure switch_pin as an input.
DDRA |= switch_pin;
// Activate switch_pin's pullup resistor.
PORTA |= switch_pin;
//int count1 = 0;
//int count2 = 0;
int bouncy_switch_state = 0;
int debounced_switch_state = 0;
while (1) {
// Turn on the led when the button is pressed
/*
if (PINA & switch_pin) {
PORTB &= ~led_pin;
} else {
PORTB |= led_pin;
}
*/
// ~5s blink period based on counting
/*
if (++count1 == 255) {
if (++count2 == 255) {
PORTB ^= led_pin;
count1 = 0;
count2 = 0;
}
}
*/
// ~2.5s second blink period
// 255 * 200 * (1024 / 20M) = 2.6112
/*
if (TCNT0 >= 200) {
TCNT0 = 0;
if (++count1 == 255) {
PORTB ^= led_pin;
count1 = 0;
}
}
*/
// the button toggles the led (with debouncing)
if ((PINA & switch_pin) != bouncy_switch_state) {
bouncy_switch_state = PINA & switch_pin;
TCNT0 = 0;
}
if (TCNT0 >= 195) {
// It's been 10ms since the switch changed.
if (bouncy_switch_state != debounced_switch_state) {
debounced_switch_state = bouncy_switch_state;
if (debounced_switch_state == 0) {
PORTB ^= led_pin;
}
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment