am basic programm ich komm und komm nicht drauf wie ich das ganz genau machen soll. ;o(
hab zwah schon was geschrieben aber das klappt sowieso net brauch ne andere lösung.
EDIT: Code-Tags eingefügt. regards, ModdyCode:'################################################### 'Sven 17/04/05 Rev01 ' '############################################################## '################################################### 'File and Variable declaration '############################################################## Declare Sub LCD() Declare Sub post-treatment() $regfile = "m8def.dat" 'controller definition file Dim dummy1, dummy2 As Byte Dim count_geschwindigkeit As Byte Dim count_gesamt_zeit As Integer '################################################### 'Initialisation and configuration of device '############################################################## $crystal = 16000000 'Quarzfrequenz Config Adc = Single , Prescaler = Auto , Reference = Off 'Für Tastenabfrage und Spannungsmessung Config Pinc.0 = Input 'Für Tastenabfrage Portc.0 = 1 'Pullup Widerstand ein Start Adc Const Ref = 5 / 1023 'Für Batteriespannungsberechnung 'Bei einer anderen Referenzspannung muss die 2.5 durch entsprechend ersetzt werden 'Die Referenzspannung wird durch den Jumper JPREF bzw. Spindeltrimmer festgelegt 'ZU ÜBERPRÜFEN!!!!! ' Falls ein LCD Display angeschlossen ist Dim ___lcdno As Bit Config Lcdpin = Pin , E = Portc.3 , E2 = Portd.7 , Rs = Portc.2 , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 Config Lcd = 20 * 4 Config PinC.1 = Output 'pin C1 um LED1 zu steuern Portc.1 = 1 'LED angesteuert Config PinD.2 = Input 'pin C2 um phototransistor1 zum abfragen Portc.2 = 1 'Pullup Widerstand ein Config PinC.3 = Output 'pin C3 um LED2 zu steuern Portc.3 = 1 'LED angesteuert Config PinD.3 = Input 'pin C4 um phototransistor2 zum abfragen Portc.3 = 1 'Pullup Widerstand ein '################################################### 'Initialisation and configuration of variable '############################################################## dummy1 = 0 dummy2 = 0 '################################################### 'Main Programm '############################################################## Do If ((PinD.2 = 1) & (dummy1=1)) dummy1 = 0 Endif If ((PinD.3 = 1) & (dummy2=1)) dummy2 = 0 Endif call post-treatment() Call LCD() Loop End '################################################### 'Sub Programm '############################################################## Sub LCD() .. ... End Sub Sub post-treatment() Speed=3600*(count_geschwindigkeit + N_count0* timer_zeit_TMR0) Gesamt_zeit = count_gesamt_zeit + N_count1* timer_zeit_TMR1 End Sub '################################################### 'Interrupt Subroutine '############################################################## Sub ...() If ((PinD.2 <> 0) & (dummy1 = 0)) 'Etwas in Lichtschrank 1 TMR0 (8 bit) init -> TMR0 config mit klein Prescaler, und benutzt für die Geschwindigkeit N_count0=0 count_gesamt_zeit= TMR1(16 bit)Werte TMR1 auf null einsetzen (init TMR1) -> TMR1 config mit gross prescaler N_count_werte=N_count N_count1=0 dummy1=1 Endif If ((PIND.3 <>0) & (dummy2 =0)) 'Etwas in Lichtschrank 2 count_geschwindigkeit= TMR0(8 bit)Werte dummy2=1 ' If TMR1 overflow ' ' N_count1 = Ncount1+1 'kontrollieren der IF schleife (wäre es möglich zwo If in einer schleife ohne EndIF??) ' ' Endif 'ENDIF? Dies ist eine Verschachtelung If TMR0 overflow N_count0 = Ncount0+1 Endif







Zitieren

Lesezeichen