PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RFID Bausatz von Pollin



rolfw20
03.10.2009, 22:16
Hallo
ich habe mir einen Bausatz für einen RFID leser gekauft. Er funktioníert auch wunderbar. Als ich jedoch das Basicprogramm auf meine bedürfnisse ändern wollte bekam ich von Bascom folgende Fehlermeldungen:
"Unknown CONFIG parameter [HITAG]"
"Unknown CONFIG parameter [DEMOD]"
"Unknown CONFIG parameter [INT]"
Hat jemand eine Ahnung was ich falsch mache?
Ist vieleicht meine Bascom Version veraltet?
Version 1.11.8.3 document build 7


'-------------------------------------------------------------------------------
' Beispielprogramm für den Pollin-Electronic RFID-Bausatz, ArtNr:810059
' Es dient zum Auslesen einer HITAG RFID-Karte mittels eines Atmel U2270B.
' Âusschnitte des Codes wurden von der Beispielsoftware für den Em4095 von
' www.mcselec.de übernommen und für den U2270B abgeändert
' Als Controller wird ein AT-Tiny 2313 verwendet.

' Sie handeln auf eigene Gefahr!
' Bei diesen Daten handelt es sich um Beispielanwendungen die nicht für den produktiven
' Einsatz geacht sind.
' Pollin Electronic gibt keine Garantien irgendeiner Art , weder ausdrücklich
' noch implizit , einschließlich unbegrenzt aller Garantien der Verwendbarkeit
' dieser Daten für einen bezeichneten oder nicht bezeichneten Zweck.
' Pollin Electronic ist nicht haftbar für jedwede Folgeschäden die aufgrund
' der Benutzung dieser Daten entstehen. Dies gilt auch dann, wenn
' Pollin Electronic von der Möglichkeit eines solchen Schadens unterrichtet worden ist.

' Firma: Pollin-Electronic-GmbH

' Autor: Christian Schmailzl

'------------------------------------------------------------------------------------------------------------------


$regfile = "2313def.dat" ' Controller : Tiny 2313

$baud = 9600 ' Übertragungsrate der UART-Schnittstelle

$crystal = 8000000 ' Taktfrequenz des Controllers



Dim Tags(5) As Byte '"Tags" als Array mit 5 Bytes definieren bytes

Dim Zaehler As Byte '"Zähler" als Byte definieren

Dim Wert As String * 5 '"Wert" als String mit 5 Hexwerten definieren


Config Portb = Output 'Port B als Ausgang definieren

Config Hitag = 64 , Type = Em4095 , Demod = Pind.3 , Int = @int1 'konfiguriert den Timer und die Variablen für HITAG

Config Lcdpin = Pin , Rs = Portb.5 , E = Portb.4 , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 'konfiguriert die LCD-Belegung

Config Lcd = 16 * 2 'konfiguriert die Displaygröße

_cfe Alias Portd.2 '_cfe wird dem Portd.2 zugewiesen

Config _cfe = Output '_cfe wird als Ausgand definiert

_cfe = 1 '_cfe wird high

Config Debounce = 30 'Tastenentprellung = 30ms

On Int1 Checkints Nosave 'Int1 wird als Eingang für HITAG verwendet

Mcucr.isc10 = 1 ' entspricht: config INT1 = changing ( der Befehl wird vom MC unterstützt,

Mcucr.isc11 = 0 ' beim 2313 aber nicht von Bascom)

Enable Interrupts 'Enable all interrupts

Locate 1 , 1 'Cursor am Display in Zeile 1, ganz links

Lcd "RFID-Modul" ' Text schreiben

Locate 2 , 1 'Cursor am Display in Zeile 1, ganz links

Lcd "with U2270B" ' Text schreiben

Set Portb.6 ' Led 1 einschalten

Set Portb.7 ' Led 2 einschalten

Wait 2 ' Warte 2 Sekunden

Reset Portb.6 'Led 1 ausschalten

Reset Portb.7 ' Led 2 ausschalten

Main: ' ab hier beginnt das Hauptprogramm

Do ' Do-Schleife

Cls 'Display löschen

Lcd "Check..." ' Text schreiben

If Readhitag(tags(1)) = 1 Then ' INT1 wird enabled

For Zaehler = 5 To 1 Step -1 ' For-Schleife beginnend von 5 nach 1; rückwärts zählend

Wert = Wert + Hex(tags(zaehler)) ' "Wert" = bestehender inhalt in der Variable + gerade gelesenen
' Tag an Position vom Zähler
Next ' Ende For-Schleife

Toggle Portb.6 ' Led 1 Zustand wechseln

Gosub Senden ' gehe zu Unterroutine

Toggle Portb.6 ' Led 1 Zustand wechseln

End If ' Ende der If-Abfrage

Debounce Pind.4 , 1 , Taste1 , Sub ' Taste 1 entprellen; wenn gerdückt, zur Unterroutine "Taste1" springen

Debounce Pind.5 , 1 , Taste2 , Sub ' Taste 2 entprellen; wenn gerdückt, zur Unterroutine "Taste2" springen

Debounce Pind.6 , 1 , Taste3 , Sub ' Taste 3 entprellen; wenn gerdückt, zur Unterroutine "Taste3" springen

Waitms 100 ' Warte 500 ms

Loop ' Sprunganweisung zum Anfang Do-Schleife

Taste1: ' Unterroutine "Taste1"

Cls ' Lcd löschen

Locate 1 , 1 ' Cursor in Zeile 1, Position 1

Lcd " T1 " ' Text schreiben

Wait 1 ' warte 1s

Cls ' Lcd löschen

Locate 1 , 1 'Cursor in Zeile 1, Position 1

Lcd " RFID " ' Text schreiben

If _cfe = 1 Then ' If-Abfrage

Locate 2 , 1 ' Cursor in Zeile 2, Position 1

Lcd "ausgeschaltet" ' Text schreiben

Print "ausgeschaltet" ' Text über UART ausgeben

_cfe = 0 ' _cfe auf low setzen -> Treiberstufen des U2270b abschalten

Bitwait Pind.4 , Reset ' Warte bis Pind.4 = low

Waitms 30 ' Warte 30ms ( Entprellung)

Bitwait Pind.4 , Set 'Warte bis Pind.4 = high

Locate 2 , 1 ' Cursor in Zeile 2, Position 1

Lcd "eingeschaltet" ' Text schreiben

Print "eingeschaltet" ' Text über UART ausgeben

_cfe = 1 ' _cfe auf high setzen -> Treiberstufen des U2270b einschalten

Wait 1 ' Warte 1s

Gosub Main ' Sprunganweisung zum Anfang der Hauptschleife

End If ' Ende der If-Anweisung

Return ' Sprunganweisung in die Hauptschleife

Taste2: ' Unterroutine "Taste2"

Cls ' Display löschen

Locate 1 , 1 ' Cursor in Zeile 1, Position 1

Lcd " T2 " ' Text schreiben

Toggle Portb.6 ' Led 1 Zustand wechseln

Wert = "T2" ' Wert = "T2"

Gosub Senden ' Sprungbefehl zur Unterroutine "Senden"

Bitwait Pind.5 , Reset ' Warte bis Pind.5 = low

Return 'Sprunganweisung in die Hauptschleife

Taste3: ' Unterroutine "Taste3"

Cls 'Display löschen

Locate 1 , 1 ' Cursor in Zeile 1, Position 1

Lcd " T3 " ' Text schreiben

Toggle Portb.7 ' Led 2 Zustand wechseln

Wert = "T3" ' Wert = "T3"

Gosub Senden ' Sprungbefehl zur Unterroutine "Senden"

Bitwait Pind.6 , Reset ' Led 2 Zustand wechseln

Return ' Sprunganweisung in die Hauptschleife

Checkints: ' Unterroutine "Checkints:"

Call _checkhitag ' Eine ausgelagerte Unterroutine aufrufen

Return ' Sprunganweisung in die Hauptschleife


Senden: ' Unterroutine "Senden"

Cls ' Display löschen

Locate 1 , 1 ' Cursor in Zeile 1, Position 1

Lcd "send..." ' Text schreiben

Locate 2 , 1 ' Cursor in Zeile 2, Position1

Lcd Wert ' Variable "Wert" schreiben

Print Wert ' Variable "Wert" über Uart ausgeben

Wert = "" ' Inhalt von Variable "Wert" = ""

'Waitms 500 ' warte 500ms

Return 'Sprunganweisung in die Hauptschleife



Ich bin für jede Hilfe Dankbar

Gruß
Rolf

Michael
03.10.2009, 23:51
Hallo rolfw20,


Ist vieleicht meine Bascom Version veraltet?
Version 1.11.8.3 document build 7


das wird der Grund sein, aktuell ist meines Wissens Version 1.11.9.5

Gruß, Michael

Tretsch
05.10.2009, 04:15
Die Library für den Chip ist erst seit Version 1.11.9.0 eingebunden. Brauchst also ne neuere Version.

MfG Tretsch

rolfw20
05.10.2009, 19:14
Danke für die Antwort.

Ich muß jetzt erst mal sehen wie das mit dem Update bei einer Vollversion läuft, bzw. was das Update kostet.

Gruß
Rolf

rolfw20
07.10.2009, 20:57
Hi Leute,

nach einem Update funktionierte alles

Übrigens das Update war kostenlos

O:)