A jelet próbáltam egy npn tranóval megforgatni, sikerült, de így sem ismeri fel a mega88p a kódsort.
Aztán eszembe jutott, hogy egyátalán befut e a megszakítás.
Hát úgy tűnik nem.
A megszakítás rutin elejére tettem egy led bekapcsolást, és nem ok.
Mondom, hátha az int1 lábbal van a gond, áthekkeltem a panelon, hogy az em4095 kimenete ne az int1 re hanem az int0 ra jöjjön be.
Így ha nem az em4095 config hitag sorral nézem, hanem csak külön engedem a megszakítást az int0 ra, akkor eljut a megszakítás rutinig, de ha beteszem az em4095 sorokat, akkor már nem.
ez az em4095 verzió: (ledr1 és ledr2 kéne hogy menjen megszakítás esetén)
Kód: Egész kijelölése
$regfile = "m88pdef.dat"
$crystal = 7372800
$hwstack = 40
$swstack = 40
$framesize = 40
$lib "em4095.lib"
Reset Portc.4
Config Portc.4 = Output
Ledg2 Alias Portc.4
Reset Portc.2
Config Portc.2 = Output
Ledg1 Alias Portc.2
Reset Portc.5
Config Portc.5 = Output
Ledr2 Alias Portc.5
Reset Portc.3
Config Portc.3 = Output
Ledr1 Alias Portc.3
Emshd Alias Portd.4
Config Emshd = Output
Emshd = 1
Waitms 200
Emshd = 0
Dim Tags(5) As Byte
Dim J As Byte
Config Hitag = 64 , Type = Em4095 , Demod = Pind.2 , Int = @int0
On Int0 Checkints
Config Int0 = Change
Enable Interrupts
Set Ledg1
Do
Loop
Checkints:
Set Ledr1
Set Ledr2
' Call _checkhitag 'in case you have used a PCINT, you could have other code here as well
Return
End
ez pedig az em4095 móka nélküli progi, HW ugyanaz, itt bekövetkezik a megszakítás
Kód: Egész kijelölése
$regfile = "m88pdef.dat"
Config Int0 = Change
Reset Portc.4
Config Portc.4 = Output
Ledg2 Alias Portc.4
Reset Portc.2
Config Portc.2 = Output
Ledg1 Alias Portc.2
Reset Portc.5
Config Portc.5 = Output
Ledr2 Alias Portc.5
Reset Portc.3
Config Portc.3 = Output
Ledr1 Alias Portc.3
On Int0 Int0_int
Enable Interrupts
Enable Int0
Do
Waitms 500
Reset Ledg2
Set Ledg1
Waitms 500
Set Ledg2
Reset Ledg1
Loop
End
Int0_int:
Set Ledr1
Set Ledr2
Return