hallo,
habe hier ein script für frequenzmessung zusammengebastelt,
jedoch funktioniert es noch nicht so recht. ich habe eine
flipflop-schaltung an PD3 mit einer frequenz von ca. 285Hz angehängt.
die ausgegebene frequenz beträgt jedoch etwa -17400 Hz. irgendwas muss
da wohl falsch sein. hatt jemand von euch vielleicht eine idee????
danke!
fab
====================================
#include <io.h>
#include <sig-avr.h>
#include <stdlib.h>
#include "lcd.c"
unsigned int iOverload;
unsigned char sLedout[10];
unsigned int iCount;
unsigned long lFreq;
unsigned int x;
SIGNAL (SIG_OVERFLOW0)
{
iCount++;
}
int main (void)
{
outp(0xFF, DDRB);
outp(0x00, DDRD);
sbi(TIMSK,TOIE0);
outp(3, TCCR0);
asm volatile ("sei");
lcd_init();
lcd_print("WELCOME");
delay_ms(2000);
lcd_cls();
while(1)
{
iOverload = 0;
loop_until_bit_is_clear(PIND, 3);
loop_until_bit_is_set(PIND,3);
outp(0,TCNT0);
iCount = 0;
for (x = 0; x < 10; x++)
{
while (bit_is_set(PIND,3))
{
if (iCount > 2000)
{
iOverload = 1;
break;
}
}
while (bit_is_clear(PIND,3))
{
if (iCount > 2000)
{
iOverload = 1;
break;
}
}
}
if (iOverload != 1)
{
lcd_cls();
lFreq = 40000000/(64*iCount);
itoa(lFreq, sLedout, 10);
lcd_print(sLedout);
}
}
}
======================================
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.