Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 21.11.2010, 15:27 Titel: |
|
|
der vorschlag würde auch nur funktionieren, wenn das programm jedes zeichen einzeln empfängt. Tuts aber nicht. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 21.11.2010, 16:27 Titel: |
|
|
Das Leerzeichen ist hexadezimal 20 (&h20), was dem Dezimalwert 32 entspricht. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 21.11.2010, 19:14 Titel: |
|
|
stimmt ebenfalls. Schon zwei punkte warums nicht klappt  _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 21.11.2010, 19:17 Titel: |
|
|
umfasst denn der eingangsspeicher der RS232 schnittstelle mehr als 1 Byte das mit dem input befehl ausgelesen wird?
und wie viele zeichen werden denn da auf ein mal eingelesen bzw. wie kann ich nur eins einlesen?
MfG Sippo |
|
Nach oben |
|
 |
MisterD

Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 21.11.2010, 19:25 Titel: |
|
|
einzelne bis potentiell ziemlich viele vermute ich mal. Ist eigentlich ja auch völlig egal, der INPUT befehl hat die möglichkeit beliebig langer ergebnisse, also sollte man sein programm entsprechend schreiben. Solang nicht irgendwo explizit steht "kann nur x sein" sollte man mit allem rechnen. _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 21.11.2010, 20:13 Titel: |
|
|
kann man denn nicht mit nur je ein Zeichen einlesen?
MfG Sippo |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 21.11.2010, 20:17 Titel: |
|
|
Mit INPUT(1, #nr) liest du ein Zeichen, mit INPUT #nr alles, was so anliegt, bis zum nächsten Stoppzeichen. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 21.11.2010, 20:26 Titel: |
|
|
dieses Stoppzeichen wäre beispielsweise ein zeilenumbruch? also CRLF? also 0x0D bzw. 13?
MfG Sippo |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 21.11.2010, 20:56 Titel: |
|
|
Zeilenumbruch oder Komma. Ich weiß aber nicht, ob das bei OPEN COM exakt genauso ist; meine Erfahrungen beschrängen sich auf Dateizugriffe.
0x0D ist übrigens nur der CR-Teil des CRLF. Was genau da jetzt bei dir als Zeilenende interpretiert wird, weiß ich nicht. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Sippo

Anmeldungsdatum: 17.04.2008 Beiträge: 125
|
Verfasst am: 21.11.2010, 21:09 Titel: |
|
|
ich habe nun die Zeit der Verzögerung erhöht, da der PC das Programm so schnell abarbeitete, dass gar keine 4 zeichen empfangen waren bevor ich diese wieder auslas. Nun ist die verzögerung länger und die zeichen stimmen soweit ich das bisher gesehen habe.
Code: | SCREEN 19
Dim temp As string
dim wert as string
dim kont as integer
dim zahl as integer
dim spalte as integer
dim zeile as integer
Open Com "COM1: 9600, N, 8, 1,cs0,ds0,cd0,rs" As #1
OPEN "empfang.txt" FOR APPEND AS #2
Do
input #1, temp
WRITE #2, temp
locate zeile, spalte
print temp
zeile = zeile + 1
if zeile = 30 then
zeile = 0
spalte = spalte + 6
end if
if spalte > 100 then
spalte = 0
cls
end if
sleep 5
loop Until Inkey$ = Chr$(27)
close #1
CLOSE #2
End |
MfG Sippo |
|
Nach oben |
|
 |
funkeld gesperrt
Anmeldungsdatum: 10.10.2009 Beiträge: 179
|
Verfasst am: 23.11.2010, 14:39 Titel: |
|
|
kannste mal dein programm vom micro zeigen, was du da für ein salat sendest. ist es bascom oder winavr?
gruss |
|
Nach oben |
|
 |
|