/* Programma naam: Cprogram10.c Programma in de (hogere) programmeertaal C Het programma demonstreert op welke wijze het toerental door een computer wordt vastgesteld. De TTL-output van een functiegenerator wordt aangesloten op de PF-poort bit7 en de min. (pin 32 en 34 van de 34-polige connector) De leds op poort A geven de periodetijd (aantal counts) weer ongeveer in een bepaald frequentiegebied. AVRStudio heeft WINAVR als pug-in. */ #include //definieert poorten etc. #define F_CPU 8000000UL // 8 MHz,nodig voor util/delay.h #include unsigned char tel, X; // unsigned char = 8bits int main (void) //hoofdroutine { DDRA = 0xFF; // als output voor leds PORTC= 0xFF; // poort C als input, pull-up ingeschakeld DDRC = 0x00; // als input voor schakelaars // wordt hier niet gebruikt PORTF= 0xFF; //poort F op input DDRF = 0x00; tel=0x00; // zet telregister op nul while (1) { while (X==0b00000000) //=wordt; == is gelijk aan { X=PINF; //controleer of X = 0 X=X & 0b10000000; } while (X==0b10000000) { tel=tel+1; _delay_ms (0.5); X=PINF; //controleer of X = 1 X=X & 0b10000000; } PORTA=tel; tel=0; } return 0; } /* Vragen en opgaven 1.Bestudeer het programma en verklaar de werking. 2.Voor welk toerengebied is dit programma bij een delay-tijd van 0,5 ms geschikt? 3.Sluit de functiegenerator aan en stel deze in op het frequentiegebied van vraag2,TTL-puls. Build en download het programma en controleer de werking door "het toerental" van de functiegenerator te varieren tussen de .... en .... Hz. Noteer de uitlezing (stand van de leds) in de tabel. Gebruik zonodig de oscilloscoop. frequentie (bijv.) bin.stand leds hex.weergave decimale weergave ......................................................... 5 ......................................................... 10 ......................................................... 20 ......................................................... 30 ......................................................... 40 ......................................................... 50 ......................................................... 60 ........................................................ 70 ......................................................... 80 ........................................................ 3. Bij toename van de frequentie wordt de uitlezing lager. Verklaar dit. 4. Geef eens aan op welke wijze dit in het programma verandert zou kunnen worden. Maak gebruik van de formule: freq.= 1/T 5. Geef in een eigen grafiek het verband weer tussen 'frequentie' en de decimale weergave (het aantal counts) Hulp: Bereken de frequentie door freq = 5000 / aantal counts. 6. Pas het programma zodanig aan dat nu 'het toerental' wordt weergegeven. D.w.z de binaire waarde van de leds moet oplopen wanneer het toerental hoger wordt. */ ng lager. Verklaar dit. 4. Geef eens aan op welke wijze dit in het programma verandert zou kunnen worden. Maak gebruik van de formule: freq.= 1/T 5. Geef in een eigen grafiek het verband weer tussen 'frequentie' en de decimale weergave (het aantal counts) Hulp: Bereken de frequentie door freq = 5000 / aantal counts. 6. Pas het programma zodanig aan dat nu 'het toerental' wordt weergegeven. D.w.z de binaire waarde van de leds moet oplopen wanneer het toerental hoger wordt. */