Salve fledge2b,
benvenuto al forum...
ma, volevo puntualizzare che questo forum non è realizzato per fini commerciali, nè tantomeno è possibile chiedere aiuto sotto ricompenso.
Noi siamo qui solo per dare una mano ai neofiti, agli hobbisti, studiosi e studenti, per condividere conoscenze ed esperienze e non certo per eseguire lavori conto terzi.
Tuttavia, visto che non vogliamo scoraggiarti, ti ho snellito e strutturato il codice seguendo le pseudo-norme di stesura funzionale.
Prova e fammi sapere.
PS. con il quarzo di 8MHz non potrai ottenere 19200baud senza %error.
Ciao
- Code: Select all
'------------------------[ modificato by G. De Luca ]---------------------------
$regfile = "m168def.dat"
$crystal = 8000000
$baud = 19200
$hwstack =64
$swstack = 64
$framesize =64
'------------------------[ qui configura il modulo Hitag ]---------------------
Config Hitag = 64 , Type = Htrc110 , Dout = Pinb.0 , Din = Pinb.1 , Clock = Pind.6 , Int = @int0
Dim Tags(5) As Byte 'each tag has 5 byte serial
Dim J As Byte ' a loop counter
Open "com1:" For Binary As #1
Ddrc.3 = 1
Ddrd.7 = 1
G2a Alias Portc.3
En_vtag Alias Portd.7
'-------------------[ qui configura gli interrupts ]----------------------------
On Int0 Checkints
Config Int0 = Change
Enable Interrupts
'-------------[ questa parte è di tua competenza ]------------------------------
Set En_vtag
Set G2a
Portc = &B001 '? cosa sarebbe ?
'se reimposti la PORTC reimposti la G2a (?)
'----------------------[ qui inizia il programma ]------------------------------
Main:
Do
If Readhitag(tags(1)) = 1 Then 'check if there is a new tag ID
For J = 1 To 5 'print the 5 bytes
Print Hex(tags(j)) ; ",";
Next
Else 'there was nothing
Print "Nothing"
End If
Waitms 500 'some delay
Loop
'-------------------------------------------------------------------------------
End
'---------[ questa routine viene chiamata dall'interrupt routine ]--------------
Checkints:
Call _checkhitag
Return