Gast
#1116205
Hi,
ich möchte eine Frequenz(10k-20k) über PB0(ICP) beim Atmega8 messen.
Das Programm steht soweit - kuckt mal bitte drüber und sagt mir ob das
so richtig ist. Ich weis auch nicht wie ich das ganze jetzt umwandle
damit ich herz angáben aufs display bekomme:
;-----------------------------------------------------------------------
---
; Title : Assembler Grundgerüst für myAVR-Board
;-----------------------------------------------------------------------
---
; Funktion : ...
; Schaltung : ...
;-----------------------------------------------------------------------
---
; Prozessor : ATmega8
; Takt : 3,6864 MHz
; Sprache : Assembler
; Datum : ...
; Version : ...
; Autor : ...
;-----------------------------------------------------------------------
---
.include "AVR.H"
;-----------------------------------------------------------------------
----
; Reset and Interrupt vector Beschreibung
begin: rjmp main ;POWER ON RESET
reti ;Int0-Interrupt
reti ;Int1-Interrupt
reti ;TC2 Compare Match
reti ;TC2 Overflow
rjmp onTC1 ;TC1 Capture
reti ;TC1 Compare Match A
reti ;TC1 Compare Match B
reti ;rjmp TC1Over ;TC1 Overflow
reti ;TC0 Overflow
reti ;SPI, STC Serial Transfer
Complete
reti ;UART Rx Complete
reti ;UART Data Register Empty
reti ;UART Tx complete
reti ;ADC Conversion Complete
reti ;EEPROM Ready
reti ;Analog Comparator
reti ;TWI (I²C) Serial Interface
reti ;Store Program Memory Redy
;-----------------------------------------------------------------------
----
; Start, Power ON, Reset
main: ldi r16, lo8(RAMEND)
out SPL, r16
ldi r16, hi8(RAMEND)
out SPH, r16
rcall timer
rcall LCD_init
rcall LCD_clear
rcall Sensor
rcall begruessung
mainloop:
rcall LCD_line2
mov r16,r20
rcall LCD_data
mov r16,r21
rcall LCD_data
loop: cp r21,r5
cp r20,r4
brne mainloop
rjmp loop
;-----------------------------------------------------------------------
----
begruessung:
rcall wait
rcall LCD_home
ldi r16,'E'
rcall LCD_data
ldi r16,'R'
rcall LCD_data
ldi r16,'K'
rcall LCD_data
ldi r16,'A'
rcall LCD_data
ldi r16,'N'
rcall LCD_data
ldi r16,'N'
rcall LCD_data
ldi r16,'T'
rcall LCD_data
ldi r16,'E'
rcall LCD_data
ldi r16,' '
rcall LCD_data
ldi r16,'F'
rcall LCD_data
ldi r16,'A'
rcall LCD_data
ldi r16,'R'
rcall LCD_data
ldi r16,'B'
rcall LCD_data
ldi r16,'E'
rcall LCD_data
ldi r16,':'
rcall LCD_data
rcall LCD_line2
ret
;-----------------------------------------------------------------------
----
onTC1: cli
in r20,ICR1L
sub r20,TCNT1H
in r21,ICR1H
ldi r22,0b00000000
out ICR1H,r22
out ICR1L,r22
out TCNT1H,r22
out TCNT1L,r22
ldi r26,0b00100000
out TIMSK,r26
sei
reti
;-----------------------------------------------------------------------
----