Hallo,
ich möchte gerne einestring über portB.6 eine string senden die etwa so
aussieht...
3B 78 12 00 00 47 C4 02 05 FF FF 6F 04
Programiert habe ich es so...
$baud = 9600
$crystal = 3532900
$regfile = "8515def.dat"
Dim A As Byte , S As String * 38
A = "3B 78 12 00 00 47 C4 02 05 FF FF 6F 04"
Serout A , 38 , B , 6 , 9600 , 1 , 8 , 2
end
Mein problem fängt hier an. Mit PRINT A bekommen ich den string, jedoch
wenn ich den portB.6 auslese bekomme ich einen langen string die so aus
sieht...
33 42 20 37 38 20 31 32 20 30 30 20 30 30 20 34 37 20 43 34 20 30 32 20
30 35 20 46 46 20 46 46 20 36 46 20 30 34
Die jeweiligen buchstaben und zahlen wird in ASCII umgewandelt.
Was muss ich machen damit ich auch die richtigen daten am port auslesen
kann?
In Thema DELPHI bin ich ziehmlich weit aber mit AVR habe ich erst
angefangen.
mfG
Eray
Hi,
gibt es da etwa eine andere methode als...
"Serout A , 38 , B , 6 , 9600 , 1 , 8 , 2"
Könnte ich vielleicht die daten auch mit der
"Config Serialout = Buffered , Size = 38"
methode senden. Ich habe paar versuche gemacht, jedoch war nichts am
port zu empfangen.
Ich benutze zur Zeit einen sg. FUN-Card.
http://www.maxking.co.uk/images/funcardchip.jpg
Wie kann ich die daten an die portB.6 so zuweisen, dass ich auch die
gewünschte format bekomme?
Ich hoffe das jemand mir helfen kann.
Dank im vorraus,
Eray
Hallo
probier mal folgendes:
$baud = 9600
dim t as byte
dim b as byte
restore DTA
for t = 1 to 4 ' anpasssen an Anzahl Bytes
read b ' Zeichen aus Tabelle lesen
print chr(b); ' und ausgeben
next t
end
dta:
data &H3b , &H78 , &H12 , &H00 ' und so weiter
Gruss Bernd
Hallo,
danke für´s Antwort.
Leider gibt es keine reaktion auf dem port.
Ich habe die code genauso eingegeben wie du es gepostet hast. Sollte ich
da etwa die port eingeben?
So wie beschrieben wird der eingebaute Uart mit den entsprechenden Pins
benutzt.
statt Print chr(b) müsste der Befehl für Software-Uart lauten:
Serout b , 0 , B , 6 , 9600 , 1 , 8 , 2
habe ich aber nicht auspobieren können.
Bernd
Abend,
somit habe ich wieder rum einen sehr langen und undefinierbaren string
bekommen.
77 5E 07 70 00 00... usw.
Irgend etwas scheint nicht zu stimmen, aber was?
Wenn ich die daten in dem Eeprom eingebe, und das von Eeprom aus sende,
wie müsste ich denn dann vorgehen? Oder geht es wieder rum nicht?
Noch eine andere Methode die ich vergessen hatte:
open "comb.6:9600,8,N,2" for output as #1
dim t as byte
dim b as byte
restore DTA
for t = 1 to 4 ' anpasssen an Anzahl Bytes
read b ' Zeichen aus Tabelle lesen
print #1 chr(b); ' und ausgeben
next t
end
dta:
data &H3b , &H78 , &H12 , &H00 ' und so weiter
Daten können nicht direkt aus dem EEProm mit Restore geladen werden.
$EEprom
dta:
data &H3b , &H78 , &H12 , &H00 ' und so weiter
speichert die Daten ins EEprom.
Auslesen kann man die Daten z.B. READEEPROM.
Bernd
Hi,
diesen zeile will der Bascom nicht komplimieren. Wenn ich "#1"
rausnehme, tut es complimieren aber bei portB.6 ist kein reaktion. Muss
da etwa wieder anstatt print, serout ausdruck geben?
Zu Thema "eeprom"...
Die versuche mache ich mit einem FUN-Card (smartcard), und in dem Karte
ist eine integrierte eeprom (AT24C64).
http://www.maxking.co.uk/images/funcardchip.jpg
Wenn ich die daten in dem externen eeprom einspeise, und bei bedarf die
adresse abrufe. Aber laut schaltbild gehen die daten über die portb.0
oder portB.1 in dem prozessor, und dann wieder raus. Also ohne den
problem mit dem HEXADEZIMAL zu lösen, würde ich wieder "33 42" statt
"3B" bekommen.
Danke für dein Hilfsbereitschaft!
Eray
Hallo
print #1, chr(b); ' und ausgeben
fehlte ein Komma nach dem #1.
Ohne Komma werden die daten auf den Hardware-Uart ausgegeben.
In der Hilfe sind die Befehle mit Beispiel erklärt.
Das EEprom kann über die SPI- oder I2C Befehle ausgelesen (und
programmiert) werden. Leider kenne ich diese seriellen EEprom nicht.
Bernd
Danke Bernd.
Leider hat das mir auch nicht geholfen.
In der Hilfe datei habe ich auch über diesen thema durchsucht, aber
leider gabs da auch keine formel, die hexadezimal daten umwandelt, oder
anders rum.
Ich werde nochmal Google´n. Vielleicht werde ich da einen formel finden!
;)
Oder vielleicht kennt sich ein anderer mit diesem problematik aus.
Was für Hexadezimalzahlen sollen denn umgewandelt werden?
Stehen die Daten schon fest (davon gehe ich mal aus) kann der Compiler
diese umwandlen.
Die Eingabe erfolgt dann mit : Data &H1a, &Hcd &Hef usw.
direkt in Hexadezimal.
Bernd