Updated pendulum.c, timer.h/.c to use timer.h/.c

This commit is contained in:
Max Braungardt 2018-04-04 19:37:26 +02:00
parent 0497b5f531
commit 8079072422
3 changed files with 15 additions and 37 deletions

View File

@ -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
//~ }

View File

@ -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;

View File

@ -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);