Schau mal:
Code:'============ PCF 8574 versuch_2 mit INT0================================= $regfile = "m8def.dat" $crystal = 10000000 $hwstack = 250 $swstack = 250 $framesize = 250 '##################### Config für LCD #################################################### Config Lcd = 40 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , Rs = Portb.4 , E = Portb.5 Config Lcdbus = 4 Config Lcdmode = Port Cursor On Cls '############################ Config I2C Bus ################################### Config Scl = Portd.1 ' I2C-Port festlegen Config Sda = Portd.0 ' I2C-Port festlegen Config Portd.2 = Input 'Int0 Portd.2 = 1 'Pull up '############################ Config INT0 ####################################### Config Int0 = Falling On Int0 Int0_auswerten Enable Int0 Dim Tasten As Byte Dim Taste0 As Byte Dim Taste1 As Byte Dim Taste2 As Byte Dim Zaehler As Word Dim isr_flag As byte 'NEWNEWNEW Enable Interrupts '############################################################################### Do if isr_flag = 1 then isr_flag = 0 I2cstart I2cwbyte &B01110001 'lese Adresse von PCF8574A I2crbyte Tasten , Nack I2cstop Locate 2 , 2 Lcd Tasten Taste0 = Tasten.0 Taste1 = Tasten.1 Taste2 = Tasten.2 Locate 1 , 1 Lcd Tasten Locate 1 , 7 Lcd Taste0 If Taste1 = 0 Then If Taste0 = 0 Then Zaehler = Zaehler + 1 Locate 1 , 30 Lcd " Arbeite!!" Wait 1 Locate 1 , 30 Lcd " " Wait 1 Locate 2 , 25 Lcd "Zaehler= " ; Zaehler ; " " End If End If End If Loop End '################# (INT0) ################################## Int0_auswerten: isr_flag = 1 Return







Zitieren

Lesezeichen