Ich habe dieses BASCOM-Programm aus einem Pollin Bausatz. Muss ich es Zeile für Zeile in C übersetzen, oder gibt es Tools dafür?
Mir ist kein Tool dafür bekannt. Du müsstest sogar noch mehr machen: Du müsstest die Funktionen implementieren, die sich hinter bestimmten BASCOM Befehlen verstecken und in dieser Form nicht 1:1 in C bzw. in der C-Library vorhanden sind.
Oktoberfestbesucher schrieb: > Ich habe dieses BASCOM-Programm aus einem Pollin Bausatz. > Muss ich es Zeile für Zeile in C übersetzen, oder gibt es Tools dafür? Das beste ist, Du verstehst anhand des Basic-Quelltextes die Funktionsweise und Algorithmen des Programms und schreibst mit diesem Wissen das Programm in einer Sprache Deiner Wahl neu. Alles andere wird Schrott.
Ich habe den Quelltext für diesen RFID-Leser von Pollin (810-059) mal gestripped, d.h. hier unwichtige Sachen = Tastenabfrage und Auswertung rausgeschmissen. Das BASCOM-Programm ist jetzt schön übersichtlich. Anscheinend fehlt die _checkhitag -Routine?! Habe in dem rausgeschmissenen Teil noch eventuel einen Bug gefunden:
1 | Taste1: ' Unterroutine "Taste1" |
2 | Cls ' Lcd löschen |
3 | Locate 1 , 1 ' Cursor in Zeile 1, Position 1 |
4 | Lcd " T1 " ' Text schreiben |
5 | Wait 1 ' warte 1s |
6 | Cls ' Lcd löschen |
7 | Locate 1 , 1 ' Cursor in Zeile 1, Position 1 |
8 | Lcd " RFID " ' Text schreiben |
9 | If _cfe = 1 Then ' If-Abfrage |
10 | Locate 2 , 1 ' Cursor in Zeile 2, Position 1 |
11 | Lcd "ausgeschaltet" ' Text schreiben |
12 | Print "ausgeschaltet" ' Text über UART ausgeben |
13 | _cfe = 0 ' _cfe auf low setzen -> Treiberstufen des U2270b abschalten |
14 | Bitwait Pind.4 , Reset ' Warte bis Pind.4 = low |
15 | Waitms 30 ' Warte 30ms ( Entprellung) |
16 | Bitwait Pind.4 , Set ' Warte bis Pind.4 = high |
17 | Locate 2 , 1 ' Cursor in Zeile 2, Position 1 |
18 | Lcd "eingeschaltet" ' Text schreiben |
19 | Print "eingeschaltet" ' Text über UART ausgeben |
20 | _cfe = 1 ' _cfe auf high setzen -> Treiberstufen des U2270b einschalten |
21 | Wait 1 ' Warte 1s |
22 | Gosub Main ' Sprunganweisung zum Anfang der Hauptschleife |
23 | End If ' Ende der If-Anweisung |
24 | Return ' Sprunganweisung in die Hauptschleife |
Führt der Rücksprung mit "Gosub Main" auf Dauer zum Stacküberlauf?!
Bin auch auf der Suche nach einem Beispiel in C-code für den U2270B. Habe beim stöbern folgenden Beitrag gefunden: Beitrag "Re: Pollin RFID Entwicklungsboard" Mit dem RFID Reader von CONRAD hatte ich bereits erfolgreich eine Anwendung mit ATmega48 und ATtiny45 geschrieben. Leider gibt es das Modul mit dem IM283 chip nicht mehr (zumindest für 10€). Jetzt habe ich das Pollin RFID Board ausgegraben und versuche nochmal mit dem U2270B mein Glück. Bin natürlich für hilfreiche Hinweise oder Beispiele dankbar. Ebenso wenn es den IM283 (sourcing) betrifft.
Wenn Du den gelinken Thread durchliest, dann siehst Du Beschwerden darüber, daß Pollin den Ansatz von Mark Alberts, MCS Electronics, der eine Lib für den EM4095 geschrieben (und auch ein eigenes Board angeboten) hat, quasi für seine Zwecke "missbraucht" hat. Das heist die MCS Lib wird für den U2270B benutzt. Was mich annehmen lässt, daß beide kompatibel sind. Hier gibt's einen Artikel dazu, d.h. der 4095 Code sollte anpassbar sein: http://www.mikrocontroller.net/articles/RFID_T%C3%BCrmodul Bascom verwendet eine Lib, die em4095.lib, welche in der Vollversion enthalten ist. Die Lib selbst ist in Assembler geschrieben. In der Demoversion von Bascom ist nur die em4095.lbx enthalten, eine gescrambelte Version der Lib. Bascom arbeitet auch mit dieser lbx-Version, das ermöglichte Pollin diesen Bausatz anzubieten, da er mit der Demoversion compilierbar ist. Ich schreibe in Bascom, für mich ist's kein Anreiz etwas Anderes zu verwenden, hab' den Bausatz hier, der funktioniert auch mit dem richtigen Schwingkreiskondensator einigermaßen ordentlich. Holt allerdings nicht das Optimum an Reichweite aus dem U2270B raus, dafür müsste die Schaltung geändert werden, bessere Applikationen dazu im DB des 2270.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.