mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik serout mit BASCOM


Autor: Eray Kerim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Eray Kerim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Bernd Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Eray Kerim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Bernd Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Eray Kerim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: Bernd Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Eray Kerim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Bernd Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Eray Kerim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Bernd Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.