Unregistriert
27.01.2015, 21:03
Hallo,
ich versuche gerade mit dem Interrupt vom Atmega32 bzw. PCF klarzukommen.
Eigentlich möchte ich nur einen der Eingänge von High nach Low manuell schalten (kurzschließen), wobei ein Interrupt beim PCF ausgelöst werden sollte, der beim Atmega32 gefangen werden soll.
Leider geschieht nach dem Kurzschluss nichts?
Kann mir hier jemand weiterhelfen?
Ich würde gerne "interrupt" im Terminal lesen ;)
Danke!
****************************************
$regfile = "m32def.dat" ' oder bei Mega16 $regfile = "m16def.dat"
Const Writeeingabeport_adr = &H7E 'I2C Adr PCF 2
Const Readeingabeport_adr = &H7F 'I2C Adr PCF 2
Dim I2cdaten As Byte
Dim I2cdaten2 As Byte 'Datenbyte aus PCF8574
Dim B1 As Byte
Dim I As Byte
$baud = 9600
$crystal = 8000000 'Quarzfrequenz
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
Config Pinb.2 = Input
Config Portb.2 = 0
Config Portd.3 = 1
Config Int2 = Rising
Enable Int2
Enable Interrupts
On Int2 Int2_isr
Portd.6 = 0 'Schrittmotoren erst mal ausschalten
I2cinit
'******** Diese 4 Befehle sind nur ab RNBFRA Version 1.2 (nicht in V 1.1)
' notwendig und bzw. möglich (erweiterte Energiesparfunktion und LED´s)
' Bei Board 1.1 bitte auskommentieren oder löschen
I2cstart
I2cwbyte &H74 'Schreibbefehl an PCF3 schicken
' Led´s ein ,Motorendstufen ein, Port-Peripherie ein, RBN-Bus Sleep Modus aus (also Peripherie aktiv)
I2cwbyte &B00000010 'Datenbyte an PCF3
I2cstop
'*********
I = 0
I2cdaten = 1
Do
Print "nichts"
Waitms 1000
I2cstart
I2cwbyte Readeingabeport_adr 'Lesebefehl an PCF schicken
I2crbyte I2cdaten , Nack 'Datenbyte von PCF lesen
I2cstop
Print I2cdaten
Loop
End
Int2_isr:
Print "interrupt"
Return
ich versuche gerade mit dem Interrupt vom Atmega32 bzw. PCF klarzukommen.
Eigentlich möchte ich nur einen der Eingänge von High nach Low manuell schalten (kurzschließen), wobei ein Interrupt beim PCF ausgelöst werden sollte, der beim Atmega32 gefangen werden soll.
Leider geschieht nach dem Kurzschluss nichts?
Kann mir hier jemand weiterhelfen?
Ich würde gerne "interrupt" im Terminal lesen ;)
Danke!
****************************************
$regfile = "m32def.dat" ' oder bei Mega16 $regfile = "m16def.dat"
Const Writeeingabeport_adr = &H7E 'I2C Adr PCF 2
Const Readeingabeport_adr = &H7F 'I2C Adr PCF 2
Dim I2cdaten As Byte
Dim I2cdaten2 As Byte 'Datenbyte aus PCF8574
Dim B1 As Byte
Dim I As Byte
$baud = 9600
$crystal = 8000000 'Quarzfrequenz
Config Scl = Portc.0 'Ports fuer IIC-Bus
Config Sda = Portc.1
Config Pinb.2 = Input
Config Portb.2 = 0
Config Portd.3 = 1
Config Int2 = Rising
Enable Int2
Enable Interrupts
On Int2 Int2_isr
Portd.6 = 0 'Schrittmotoren erst mal ausschalten
I2cinit
'******** Diese 4 Befehle sind nur ab RNBFRA Version 1.2 (nicht in V 1.1)
' notwendig und bzw. möglich (erweiterte Energiesparfunktion und LED´s)
' Bei Board 1.1 bitte auskommentieren oder löschen
I2cstart
I2cwbyte &H74 'Schreibbefehl an PCF3 schicken
' Led´s ein ,Motorendstufen ein, Port-Peripherie ein, RBN-Bus Sleep Modus aus (also Peripherie aktiv)
I2cwbyte &B00000010 'Datenbyte an PCF3
I2cstop
'*********
I = 0
I2cdaten = 1
Do
Print "nichts"
Waitms 1000
I2cstart
I2cwbyte Readeingabeport_adr 'Lesebefehl an PCF schicken
I2crbyte I2cdaten , Nack 'Datenbyte von PCF lesen
I2cstop
Print I2cdaten
Loop
End
Int2_isr:
Print "interrupt"
Return