sooo hir ist das übel was mir schlaflose nächte bereitet....


Code:
$lib "glcdks108.lib "

$crystal = 16000000
$regfile = "m128def.dat"
$hwstack = 40
$swstack = 40
$framesize = 40


'LCD pin

' 1       Vss            GND
'2        Vdd            +5V
'3        V0             poti
'4        D/I            Cd
'5        R/W            Rd
'6        E              enable
'7-14     DB             Porta
'15       Cs1            Ce1
'16       Cs2            Ce2
'17       RESET          reset
'18       Vee           poti
'19       A             7,2V
'20       K             Gnd

Config Portc = Output


Config Porta = Output


Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 2 , Ce2 = 5 , Cd = 1 , Rd = 0 , Reset = 4 , Enable = 3

Wait 1


Locate 16 , 1 : Lcd "Geschwindikeitsanzeige"

Cls



'--------------------------------------------------------------------------

'**********************
'
'FUNKMODUL KOMMUNKATION
'
'**********************

config Portb = output     'verbunden mit den eingängen des funkmoduls
config portf = output      'verbunden mit LEDs die ein signal geben

set portb 
set portf 

if portb.0 = 0 then portf.0 = 1 

if portb.1 = 0 then portf.1 = 1

if portb.2 = 0 then portf.2 = 1


'--------------------------------------------------------------------------

'*********************************
'
'GESCHWINDIGKEITSMESSUNG & AUSGABE
'
'*********************************

Set Pind.6                                                  'Pullup aktiv

Config Pind.6 = Input                                       'Konfiguration des Timer/Counter und Signalinput für Geschwindigkeitsanzeige
Config Int0 = Falling
Config Timer1 = Timer , Prescale = 1024


Const Timervorgabe = 3036                                   ' festgelegte Konstanten
Const Schraubenprowelle = 6                                 '
Const Reifenumfangincm = 127                                '


Dim Reifenumfanginkm As Long                                'Dimensionierung der Bytes zur Berechnung der Geschwindigkeit
Dim Zaehlerirq0 As Long                                     '
Dim Impulseprosekunde As Long                               '
Dim Impulseprostunde As Long                                '
Dim Umdrehungenprostunde As Integer                         '
Dim Kilometerprostunde As Integer                           '



Zaehlerirq0 = 0                                             'Prozedur Timer
On Int0 Irq0
Enable Int0

On Timer1 Timer_irq
Enable Timer1

Enable Interrupts


Do

   Cls
       'Das Programm brechnet die Geschwindikeit und zeigt sie auf dem LCD  an
   Print
   Reifenumfanginkm = Reifenumfangincm / 100000
   Impulseprostunde = Impulseprosekunde * 3600
   Umdrehungenprostunde = Impulseprostunde / Schraubenprowelle
   Kilometerprostunde = Umdrehungenprostunde * Reifenumfanginkm
locate 2 , 2 :  Lcd Kilometerprostunde
Locate 3 , 3 : Lcd "Km/h"

   Waitms 30

Loop

End


Irq0:
 Incr Zaehlerirq0
Return


Timer_irq:
  Timer1 = Timervorgabe
  Impulseprosekunde = Zaehlerirq0
  Zaehlerirq0 = 0
  Return


'---------------------------------------------------------------------------

'****************************
'
'ZUFALLSGENERATOR
'
'****************************

'die drei ausgänge sollen alternativ auch über einen zufallsgenerator aktiviert werden

Dim A As Byte
Dim Count As Byte
Dim Lotto As Byte



Do

Cls

Print A
Incr A

Count = Rnd(12)
Lotto = Count + 2
Print Count




Waitms 30

Loop Until A = 40

End