Affiche la fréquence d'un signal sur la liaison série.
#include <avrio/led.h>
#include <avrio/delay.h>
#include <avrio/tc.h>
#include <avrio/counter.h>
#define BAUDRATE 115200
#define PORT "tty0"
void vTimerInit (void);
uint16_t usTimerRead (void);
void vTimerClear (void);
void vTimerEnable (bool En);
int
main (void) {
xCounter fm;
.clear = vTimerClear,
.enable = vTimerEnable,
.read = usTimerRead
};
stdout = serial_port;
printf ("Frequency Meter\nWindow=%u ms\nCount,Freq\n", fm.usWindow);
for (;;) {
printf ("%u,%.1f\n", usCount, dFreq);
}
}
return 0;
}
void
vTimerInit (void) {
TCCR1A = 0;
TCCR1B = 0;
}
void
vTimerClear (void) {
TCNT1 = 0;
}
void
vTimerEnable (bool En) {
if (En) {
TCCR1B = 0x07;
}
else {
TCCR1B = 0;
}
}
uint16_t
usTimerRead (void) {
return TCNT1;
}