Nö, auch wenn das im Hilfebeispiel als Byte dimensioniert wird. Pulsein liefert ein Word
Habe in meinem PPM-Proggi auch die Variable als Word deklariert
Wobei ich gerade sehe, dass ich in anderen Projekten durchaus auch Byte verwende und es geht.
Hier nochmal ein Auszug ohne die Display-Ausgabe:
Code:
'*******************************************************************************
'* PPM-PLUS 10MHz Quarz, B.Pisarek, V 1.01, 04. November 2005 *
'*******************************************************************************
'===============================================================================
' Compiler Direktiven
'===============================================================================
$regfile = "attiny2313.dat"
$crystal = 10000000
$Lib "mcs_10mhz.lib"
'-------------------------------------------------------------------------------
'===============================================================================
' Variablen
'===============================================================================
Dim messen as Word
Dim summe as Word
Dim i as Byte
Dim stelle as Byte
Dim bcd_aus as Byte
Dim ausgang as Byte
Dim einer as Byte
Dim zehner as Byte
Dim hunderter as Byte
Dim zyklus as Byte
'-------------------------------------------------------------------------------
'===============================================================================
' Ein- und Ausgänge
'===============================================================================
Ddrb = &B11111111
Ddrd = &B11111110
Portd = &B00000001 'Pullup Widerstand an D0
'-------------------------------------------------------------------------------
'*******************************************************************************
'* HAUPTPROGRAMM *
'*******************************************************************************
Do
summe = 0
For i=1 To 16
Pulsein messen , Pind , 0 , 1
summe = summe + messen
Next i
Shift summe , Right , 4
'------
hunderter = summe / 100
hunderter = hunderter mod 10
zehner = summe / 10
zehner = zehner mod 10
einer = summe mod 10
'------
if err = 1 then goto nopulse
Loop
'-------------------------------------------------------------------------------
'===
End
'===
Noch mit drin die Aufdröselung der Stellen für die IRQ-Displayroutine und Mittelwertbildung der Messung aus 16 Einzelmessungen - wird dann schön ruhig die Anzeige.
LG,
Bruno
Lesezeichen