Add documentation and convenience hal stuff
This commit is contained in:
parent
86a97f4873
commit
26c2c6aa9c
|
@ -6,6 +6,9 @@
|
||||||
#define LEFT 0
|
#define LEFT 0
|
||||||
#define RIGHT 1
|
#define RIGHT 1
|
||||||
|
|
||||||
|
#define OFF 0
|
||||||
|
#define ON 1
|
||||||
|
|
||||||
// INITIALIZATION
|
// INITIALIZATION
|
||||||
|
|
||||||
// initializes the hardware (timers, ...)
|
// initializes the hardware (timers, ...)
|
||||||
|
@ -18,6 +21,7 @@ void reset_hw(void);
|
||||||
// BUTTONS
|
// BUTTONS
|
||||||
|
|
||||||
// returns 1 if the button is currently pressed, 0 otherwise
|
// returns 1 if the button is currently pressed, 0 otherwise
|
||||||
|
// WARNING: you should really use button_clicked() instead
|
||||||
uint8_t button_state(uint8_t btn);
|
uint8_t button_state(uint8_t btn);
|
||||||
|
|
||||||
// returns 1 if the button was clicked since the last call to this function or button_reset()
|
// returns 1 if the button was clicked since the last call to this function or button_reset()
|
||||||
|
@ -26,12 +30,14 @@ void button_reset(uint8_t btn);
|
||||||
|
|
||||||
// LEDS
|
// LEDS
|
||||||
|
|
||||||
|
void led_set(uint8_t led, uint8_t state);
|
||||||
void led_on(uint8_t led);
|
void led_on(uint8_t led);
|
||||||
void led_off(uint8_t led);
|
void led_off(uint8_t led);
|
||||||
void led_inv(uint8_t led);
|
void led_inv(uint8_t led);
|
||||||
|
|
||||||
// MOTOR
|
// MOTOR
|
||||||
|
|
||||||
|
void motor_set(uint8_t state);
|
||||||
void motor_on(void);
|
void motor_on(void);
|
||||||
void motor_off(void);
|
void motor_off(void);
|
||||||
void motor_inv(void);
|
void motor_inv(void);
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
|
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
#define __DELAY_BACKWARD_COMPATIBLE__
|
|
||||||
#include <util/delay.h>
|
|
||||||
|
|
||||||
#include <pentabug/lifecycle.h>
|
#include <pentabug/lifecycle.h>
|
||||||
|
|
||||||
|
@ -38,6 +36,7 @@ inline static void major_interrupt(void) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WARNING: this interrupt is already way too big. extend only in case of emergency!
|
||||||
ISR(TIMER0_COMPA_vect) {
|
ISR(TIMER0_COMPA_vect) {
|
||||||
if(ir_active) {
|
if(ir_active) {
|
||||||
PORTD ^= 1 << 2;
|
PORTD ^= 1 << 2;
|
||||||
|
@ -99,6 +98,10 @@ void reset_hw(void) {
|
||||||
button_pressed[1] = 0;
|
button_pressed[1] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t button_state(uint8_t btn) {
|
||||||
|
return !(PINB & (1 << btn));
|
||||||
|
}
|
||||||
|
|
||||||
uint8_t button_clicked(uint8_t btn) {
|
uint8_t button_clicked(uint8_t btn) {
|
||||||
uint8_t clicked = button_pressed[btn];
|
uint8_t clicked = button_pressed[btn];
|
||||||
button_pressed[btn] = 0;
|
button_pressed[btn] = 0;
|
||||||
|
@ -109,6 +112,14 @@ void button_reset(uint8_t btn) {
|
||||||
button_pressed[btn] = 0;
|
button_pressed[btn] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void led_set(uint8_t led, uint8_t state) {
|
||||||
|
if(state) {
|
||||||
|
led_on(led);
|
||||||
|
} else {
|
||||||
|
led_off(led);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void led_on(uint8_t led) {
|
void led_on(uint8_t led) {
|
||||||
if(led == RIGHT) {
|
if(led == RIGHT) {
|
||||||
PORTC &= ~(1 << 2);
|
PORTC &= ~(1 << 2);
|
||||||
|
@ -133,6 +144,14 @@ void led_inv(uint8_t led) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void motor_set(uint8_t state) {
|
||||||
|
if(state) {
|
||||||
|
motor_on();
|
||||||
|
} else {
|
||||||
|
motor_off();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void motor_on(void) {
|
void motor_on(void) {
|
||||||
PORTB |= 1 << 6;
|
PORTB |= 1 << 6;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#include <pentabug/music.h>
|
#include <pentabug/music.h>
|
||||||
|
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
#define __DELAY_BACKWARD_COMPATIBLE__
|
|
||||||
#include <util/delay.h>
|
|
||||||
|
|
||||||
#include <pentabug/timer.h>
|
#include <pentabug/timer.h>
|
||||||
#include <pentabug/lifecycle.h>
|
#include <pentabug/lifecycle.h>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user