Termin 5

Mikrocomputertechnik
Stoppuhr Code von Homepage downloaden
Atmel Studio neues Projekt erstellen
XMega128A1 wählen und Dragon mit JTAG einstellen
Dateien lcd.c & lcd.h im Solution Explorer “Add‘en“
Lösung 4 öffnen und in das Projekt kopieren / einfügen
Mikrocomputertechnik - Stoppuhr
#define F_CPU 2000000
#include
#include
#include
#include
#include
#include
<avr/io.h>
<avr/pgmspace.h>
<stdio.h>
<util/delay.h>
<avr/interrupt.h>
"lcd.h"
int s = 0; //globale Variable Sekunden
int ms = 0; //globale Variable Millisekunden
Mikrocomputertechnik - Stoppuhr
int main(void)
{
PORTD.DIR = 0x00; //Port D als Eingang
//Port D Pin 0 Pullup & Both Interrupt aktivieren
PORTD.PIN0CTRL = PORT_OPC_PULLUP_gc | PORT_ISC_BOTHEDGES_gc;
PORTD.INT0MASK = 0x01; //Port D SW0 für Interrupt Maske
PORTD_INTCTRL = PORT_INT0LVL_MED_gc; //Port D Medium Level setzen
lcd_init(); //LCD Display initialisieren
lcd_line_one(); //erste Reihe auf dem Display wählen
lcd_write_string_p(PSTR("Stoppuhr:\0")); //Text aufs Display schreiben
TCC0.CTRLA = TC_CLKSEL_DIV8_gc; //Prescaler von 8
TCC0.INTCTRLA = TC_OVFINTLVL_MED_gc; //Medium Interrupt Level
TCC0.PER = 2500; //10ms
PMIC.CTRL |= PMIC_MEDLVLEN_bm; //Medium Level aktivieren
sei(); //globale Interrupt aktivieren
while(1) //Display Ansteuerung
{
lcd_line_two(); //zweite Reihe auf dem Display wählen
char MsgTemp[17]; //Temp Spreicher für Variable
sprintf_P(MsgTemp, PSTR("%2d:%3d"), s, ms); //Variable in String
lcd_write_string_0(MsgTemp); //Variable aufs Display schreiben
}
}
Mikrocomputertechnik - Stoppuhr
ISR(TCC0_OVF_vect) //Interrupt Service Routine für Timer
{
if(ms>=990)
{
ms=0; //setze ms zurück
s++; //addiere 1s dazu
}
else
{
ms = ms + 10; //addiere 10ms dazu
}
}
Mikrocomputertechnik - Stoppuhr
ISR(PORTD_INT0_vect) //Interrupt Service Routine für SW0
{
while(!(PORTD.IN & 0x01)) //Warten bis SW0 losgelassen wird
{
}
s = 0; //Sekunden Variable zurücksetzen
ms = 0; //Millisekunden Variable zurücksetzen
}
Mikrocomputertechnik - Pulsmessgerät
Messung der Zeit zwischen zwei Pulsen
Berechnung auf Pulsschläge pro Minute
Berechnungsformel?
Mikrocomputertechnik - Pulsmessgerät
Messung der Zeit zwischen zwei Pulsen
Berechnung auf Pulsschläge pro Minute
Berechnungsformel:
60 Sekunden / Messung in ms * 1000
60000 / Messung in ms
Mikrocomputertechnik
Pulssensor anschließen an Stecker J3
Rot = VCC_P5V0
Schwarz = GND
Lila = GPIO0
Neue Berechnungsformel:
60 Sekunden / Messung in ms * 1000 / 2
60000 / Messung in ms / 2