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 <stddef.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
|
#include "timer.h"
|
||||||
#include "color_hsv.h"
|
#include "color_hsv.h"
|
||||||
#define HUE_MAX 610
|
#define HUE_MAX 610
|
||||||
#define HUE_MIN 350
|
#define HUE_MIN 350
|
||||||
@ -39,7 +40,7 @@ uint8_t volatile triggered = 0;
|
|||||||
|
|
||||||
// On External Interrupt:
|
// On External Interrupt:
|
||||||
ISR(INT1_vect) {
|
ISR(INT1_vect) {
|
||||||
uint32_t now = time + TCNT1;
|
uint32_t now = timer_now32(); // time + TCNT1;
|
||||||
//~ triggered = (triggered + 1) % 4;
|
//~ triggered = (triggered + 1) % 4;
|
||||||
if(now > cooldown) {
|
if(now > cooldown) {
|
||||||
triggered = true;
|
triggered = true;
|
||||||
@ -58,7 +59,8 @@ ISR(INT1_vect) {
|
|||||||
//~ TCNT1 = 0; // Reset Timer/Counter1
|
//~ TCNT1 = 0; // Reset Timer/Counter1
|
||||||
TCNT0 = 0; // Reset Timer/Counter0
|
TCNT0 = 0; // Reset Timer/Counter0
|
||||||
time = 0;
|
time = 0;
|
||||||
oldTime = 0;
|
oldTime = 0;
|
||||||
|
timer_reset();
|
||||||
}
|
}
|
||||||
//~ triggered = 0;
|
//~ triggered = 0;
|
||||||
min = HUE_MID;
|
min = HUE_MID;
|
||||||
@ -67,9 +69,10 @@ ISR(INT1_vect) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//~ // On Timer Overflow Interrupt:
|
//~ // On Timer Overflow Interrupt:
|
||||||
ISR(TIMER1_OVF_vect) {
|
//~ ISR(TIMER1_OVF_vect) {
|
||||||
time += 0x00010000;
|
//~ // time += 0x00010000;
|
||||||
}
|
//~ timer_overflow();
|
||||||
|
//~ }
|
||||||
|
|
||||||
int main(void) {
|
int main(void) {
|
||||||
|
|
||||||
@ -90,33 +93,8 @@ int main(void) {
|
|||||||
DDRC = 0x3f; // Digital Direction PORTC[5:0] = output
|
DDRC = 0x3f; // Digital Direction PORTC[5:0] = output
|
||||||
PORTC = 0x00;
|
PORTC = 0x00;
|
||||||
|
|
||||||
// Timer concatenation
|
timer_init();
|
||||||
// Timer 2 (8 Bit, 50 ns)
|
timer_reset();
|
||||||
//~ 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
|
|
||||||
|
|
||||||
// Init color
|
// Init color
|
||||||
hsv_t colorsHSV[LEDS];
|
hsv_t colorsHSV[LEDS];
|
||||||
@ -150,7 +128,7 @@ int main(void) {
|
|||||||
//~ uint64_t time1 = TCNT1;
|
//~ uint64_t time1 = TCNT1;
|
||||||
//~ uint64_t time0 = TCNT0;
|
//~ uint64_t time0 = TCNT0;
|
||||||
//~ uint64_t now = time2 | (time1 << 9) | (time0 << 26);
|
//~ uint64_t now = time2 | (time1 << 9) | (time0 << 26);
|
||||||
uint32_t now = time + TCNT1;
|
uint32_t now = timer_now32(); // time + TCNT1;
|
||||||
//~ if(now > delay) {
|
//~ if(now > delay) {
|
||||||
//~ PORTC |= 0x08; // PORTC3 = HIGH
|
//~ PORTC |= 0x08; // PORTC3 = HIGH
|
||||||
//~ }
|
//~ }
|
||||||
|
@ -31,8 +31,8 @@ void timer_reset(void)
|
|||||||
highBits64 = 0;
|
highBits64 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ISR(TIMER1_OVF_vect)
|
ISR(TIMER1_OVF_vect)
|
||||||
void timer_overflow(void)
|
//~ void timer_overflow(void)
|
||||||
{
|
{
|
||||||
highBits32 += 0x01000000;
|
highBits32 += 0x01000000;
|
||||||
highBits64 += 0x0000000001000000;
|
highBits64 += 0x0000000001000000;
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
void timer_init(void);
|
void timer_init(void);
|
||||||
void timer_reset(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);
|
uint32_t timer_now32(void);
|
||||||
uint64_t timer_now64(void);
|
uint64_t timer_now64(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user