Compare commits
4 Commits
163e31908f
...
f9ed357485
Author | SHA1 | Date |
---|---|---|
Sven Vogel | f9ed357485 | |
Sven Vogel | 3a8fa2a56e | |
Sven Vogel | d331685f21 | |
Sven Vogel | fa2d9edaa8 |
|
@ -0,0 +1 @@
|
||||||
|
.pio
|
|
@ -0,0 +1,14 @@
|
||||||
|
; PlatformIO Project Configuration File
|
||||||
|
;
|
||||||
|
; Build options: build flags, source filter
|
||||||
|
; Upload options: custom upload port, speed and extra flags
|
||||||
|
; Library options: dependencies, extra library storages
|
||||||
|
; Advanced options: extra scripting
|
||||||
|
;
|
||||||
|
; Please visit documentation for the other options and examples
|
||||||
|
; https://docs.platformio.org/page/projectconf.html
|
||||||
|
|
||||||
|
[env:nanoatmega328]
|
||||||
|
platform = atmelavr
|
||||||
|
board = nanoatmega328
|
||||||
|
framework = arduino
|
|
@ -0,0 +1,47 @@
|
||||||
|
//
|
||||||
|
// Created by servostar on 27.10.23.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "button.h"
|
||||||
|
|
||||||
|
#ifdef BUTTON_INTERRUPT
|
||||||
|
|
||||||
|
ISR(INT0_vect)
|
||||||
|
{
|
||||||
|
PORTB = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ISR(INT1_vect)
|
||||||
|
{
|
||||||
|
PORTB = 0xff;
|
||||||
|
}
|
||||||
|
|
||||||
|
void init() {
|
||||||
|
// set B as output
|
||||||
|
DDRB = 0xff;
|
||||||
|
PORTB = 0x00;
|
||||||
|
|
||||||
|
// set Port D to input (bit 2/3, remember bit 0/1 are for UART)
|
||||||
|
SET_INPUT(DDRD, DDD2);
|
||||||
|
SET_INPUT(DDRD, DDD3);
|
||||||
|
// put 5V on input (make it pull up resistor)
|
||||||
|
SET_BIT(PORTD, DDD2);
|
||||||
|
SET_BIT(PORTD, DDD3);
|
||||||
|
|
||||||
|
// configure interrupt mode
|
||||||
|
SET_INTERRUPT_MODE(0, FALLING);
|
||||||
|
SET_INTERRUPT_MODE(1, FALLING);
|
||||||
|
|
||||||
|
// enable interrupt 0 and 1
|
||||||
|
ENABLE_INTERRUPT(0);
|
||||||
|
ENABLE_INTERRUPT(1);
|
||||||
|
|
||||||
|
// enable interrupts globally
|
||||||
|
sei();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,13 @@
|
||||||
|
//
|
||||||
|
// Created by servostar on 27.10.23.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ARDUINO_BUTTON_H
|
||||||
|
#define ARDUINO_BUTTON_H
|
||||||
|
|
||||||
|
#include "prelude.h"
|
||||||
|
|
||||||
|
void init();
|
||||||
|
void loop();
|
||||||
|
|
||||||
|
#endif //ARDUINO_BUTTON_H
|
|
@ -0,0 +1,47 @@
|
||||||
|
//
|
||||||
|
// Created by servostar on 27.10.23.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "button.h"
|
||||||
|
|
||||||
|
// ---------------------------------------
|
||||||
|
//
|
||||||
|
// DDR set bit of port to either input or output
|
||||||
|
// PORTx set bit of port value
|
||||||
|
// PINx read voltage of bit of port D
|
||||||
|
|
||||||
|
#ifdef BUTTON_POLL
|
||||||
|
|
||||||
|
void init() {
|
||||||
|
// ---------------------------------------
|
||||||
|
// set Port B to output
|
||||||
|
// we will write through B5
|
||||||
|
SET_OUTPUT(DDRB, DDB5);
|
||||||
|
CLR_BIT(PORTB, DDB5);
|
||||||
|
|
||||||
|
// ---------------------------------------
|
||||||
|
// setup input port
|
||||||
|
// we will read through D2/D3
|
||||||
|
|
||||||
|
// set Port D to input (bit 2/3, remember bit 0/1 are for UART)
|
||||||
|
SET_INPUT(DDRD, DDD2);
|
||||||
|
SET_INPUT(DDRD, DDD3);
|
||||||
|
// put 5V on input (make it pull up resistor)
|
||||||
|
SET_BIT(PORTD, DDD2);
|
||||||
|
SET_BIT(PORTD, DDD3);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
// poll voltage of pin 2 of port D
|
||||||
|
if (!GET_BIT(PIND, PIND2)) {
|
||||||
|
SET_BIT(PORTB, DDB5);
|
||||||
|
}
|
||||||
|
|
||||||
|
// poll voltage of pin 3 of port D
|
||||||
|
if (!GET_BIT(PIND, PIND3)) {
|
||||||
|
CLR_BIT(PORTB, DDB5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,13 @@
|
||||||
|
//
|
||||||
|
// Created by servostar on 27.10.23.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ARDUINO_BUTTON_H
|
||||||
|
#define ARDUINO_BUTTON_H
|
||||||
|
|
||||||
|
#include "prelude.h"
|
||||||
|
|
||||||
|
void init();
|
||||||
|
void loop();
|
||||||
|
|
||||||
|
#endif //ARDUINO_BUTTON_H
|
10
src/main.cpp
10
src/main.cpp
|
@ -2,9 +2,15 @@
|
||||||
extern void init();
|
extern void init();
|
||||||
extern void loop();
|
extern void loop();
|
||||||
|
|
||||||
#include "blink/blink.h"
|
//#include "blink/blink.h"
|
||||||
|
//#include "button_poll/button.h"
|
||||||
|
//#include "button_interupt/button.h"
|
||||||
|
#include "trafficlight/trafficlight.h"
|
||||||
|
|
||||||
#define BLINK
|
//#define BLINK
|
||||||
|
//#define BUTTON_POLL
|
||||||
|
//#define BUTTON_INTERRUPT
|
||||||
|
#define TRAFFIC_LIGHT
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
init();
|
init();
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
//
|
||||||
|
// Created by servostar on 27.10.23.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "trafficlight.h"
|
||||||
|
|
||||||
|
#ifdef TRAFFIC_LIGHT
|
||||||
|
|
||||||
|
void init() {
|
||||||
|
// set Port B bit 0,1,2 to output mode
|
||||||
|
DDRB = 0b00000111;
|
||||||
|
|
||||||
|
// set port B bit 2 (red) to one
|
||||||
|
PORTB = 0b00000100;
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
_delay_ms(200);
|
||||||
|
// set red orange
|
||||||
|
PORTB ^= 0b00000010;
|
||||||
|
_delay_ms(200);
|
||||||
|
|
||||||
|
// set green
|
||||||
|
PORTB ^= 0b00000111;
|
||||||
|
_delay_ms(500);
|
||||||
|
|
||||||
|
// set orange
|
||||||
|
PORTB ^= 0b00000011;
|
||||||
|
_delay_ms(500);
|
||||||
|
|
||||||
|
// set to red
|
||||||
|
PORTB ^= 0b00000110;
|
||||||
|
}
|
||||||
|
#endif
|
|
@ -0,0 +1,13 @@
|
||||||
|
//
|
||||||
|
// Created by servostar on 27.10.23.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef ARDUINO_TRAFFICLIGHT_H
|
||||||
|
#define ARDUINO_TRAFFICLIGHT_H
|
||||||
|
|
||||||
|
#include "prelude.h"
|
||||||
|
|
||||||
|
void init();
|
||||||
|
void loop();
|
||||||
|
|
||||||
|
#endif //ARDUINO_TRAFFICLIGHT_H
|
Loading…
Reference in New Issue