Updated pendulum.c, timer.h/.c to use timer.h/.c
This commit is contained in:
parent
0497b5f531
commit
8079072422
@ -7,6 +7,7 @@
|
||||
#include <stddef.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "timer.h"
|
||||
#include "color_hsv.h"
|
||||
#define HUE_MAX 610
|
||||
#define HUE_MIN 350
|
||||
@ -39,7 +40,7 @@ uint8_t volatile triggered = 0;
|
||||
|
||||
// On External Interrupt:
|
||||
ISR(INT1_vect) {
|
||||
uint32_t now = time + TCNT1;
|
||||
uint32_t now = timer_now32(); // time + TCNT1;
|
||||
//~ triggered = (triggered + 1) % 4;
|
||||
if(now > cooldown) {
|
||||
triggered = true;
|
||||
@ -58,7 +59,8 @@ ISR(INT1_vect) {
|
||||
//~ TCNT1 = 0; // Reset Timer/Counter1
|
||||
TCNT0 = 0; // Reset Timer/Counter0
|
||||
time = 0;
|
||||
oldTime = 0;
|
||||
oldTime = 0;
|
||||
timer_reset();
|
||||
}
|
||||
//~ triggered = 0;
|
||||
min = HUE_MID;
|
||||
@ -67,9 +69,10 @@ ISR(INT1_vect) {
|
||||
}
|
||||
|
||||
//~ // On Timer Overflow Interrupt:
|
||||
ISR(TIMER1_OVF_vect) {
|
||||
time += 0x00010000;
|
||||
}
|
||||
//~ ISR(TIMER1_OVF_vect) {
|
||||
//~ // time += 0x00010000;
|
||||
//~ timer_overflow();
|
||||
//~ }
|
||||
|
||||
int main(void) {
|
||||
|
||||
@ -90,33 +93,8 @@ int main(void) {
|
||||
DDRC = 0x3f; // Digital Direction PORTC[5:0] = output
|
||||
PORTC = 0x00;
|
||||
|
||||
// Timer concatenation
|
||||
// Timer 2 (8 Bit, 50 ns)
|
||||
//~ DDRB |= 0x08; // Digital Direction PORTB3 = output (PIN17 OC2A)
|
||||
//~ PORTB |= 0x08; // POTRB3 = HIGH
|
||||
//~ TCNT2 = 0x00; // Timer/Counter2 value register clear
|
||||
//~ OCR2A = 0xff; // Timer/Counter2 output compare register A
|
||||
//~ TIMSK2 |= 0x02; // Timer/Counter2 Interrupt Mask Register
|
||||
//~ // Enable compare A match interrupt
|
||||
//~ TCCR2A |= 0x40; // Timer/Counter2 Control Register A
|
||||
//~ // Toggle OC2A on compare match
|
||||
//~ TCCR2B |= 0x01; // Timer/Counter2 Control Register B
|
||||
//~ // Prescale Factor 1
|
||||
//~ // Timer 1 (16 Bit, 25.55 µs)
|
||||
//~ DDRB |= 0x02; // Digital Direction PORTB1 = output (PIN15 OC1A)
|
||||
//~ PORTB |= 0x02; // POTRB1 = HIGH
|
||||
//~ TCNT1 = 0x0000; // Timer/Counter1 value register clear
|
||||
//~ OCR1A = 0xffff; // Timer/Counter1 output compare register A
|
||||
//~ TIMSK1 |= 0x02; // Timer/Counter1 Interrupt Mask Register
|
||||
//~ // Enable compare register A match interrupt
|
||||
//~ TCCR1A |= 0x40; // Timer/Counter1 Control Register A
|
||||
//~ // Toggle OC1A on compare match
|
||||
//~ TCCR1B |= 0x07; // Timer/Counter1 Control Register B
|
||||
//~ // External Clock Source on T1 (PIN11) on rising edge
|
||||
//~ // Timer 0 (8 Bit, 3,34891515 s)
|
||||
//~ TCNT0 = 0x00; // Timer/Counter0 value register clear
|
||||
//~ TCCR0B |= 0x07; // Timer/Counter0 Control Register B
|
||||
//~ // External clock source on T0 (PIN6, PD4) on rising edge
|
||||
timer_init();
|
||||
timer_reset();
|
||||
|
||||
// Init color
|
||||
hsv_t colorsHSV[LEDS];
|
||||
@ -150,7 +128,7 @@ int main(void) {
|
||||
//~ uint64_t time1 = TCNT1;
|
||||
//~ uint64_t time0 = TCNT0;
|
||||
//~ uint64_t now = time2 | (time1 << 9) | (time0 << 26);
|
||||
uint32_t now = time + TCNT1;
|
||||
uint32_t now = timer_now32(); // time + TCNT1;
|
||||
//~ if(now > delay) {
|
||||
//~ PORTC |= 0x08; // PORTC3 = HIGH
|
||||
//~ }
|
||||
|
@ -31,8 +31,8 @@ void timer_reset(void)
|
||||
highBits64 = 0;
|
||||
}
|
||||
|
||||
// ISR(TIMER1_OVF_vect)
|
||||
void timer_overflow(void)
|
||||
ISR(TIMER1_OVF_vect)
|
||||
//~ void timer_overflow(void)
|
||||
{
|
||||
highBits32 += 0x01000000;
|
||||
highBits64 += 0x0000000001000000;
|
||||
|
@ -7,9 +7,9 @@
|
||||
|
||||
void timer_init(void);
|
||||
void timer_reset(void);
|
||||
void timer_overflow(void);
|
||||
// void timer_overflow(void);
|
||||
|
||||
// ISR(TIMER1_OVF_vect);
|
||||
ISR(TIMER1_OVF_vect);
|
||||
|
||||
uint32_t timer_now32(void);
|
||||
uint64_t timer_now64(void);
|
||||
|
Loading…
Reference in New Issue
Block a user