bravo, dreimal das gleiche thema erstellt ....
tu mal deinen quellcode posten, dann kann dir sicher geholfen werden.
Hallo zusammen,
als Anfänger tu ich mich mit dem Datenaustauch vom Mega8 über RS232 zum PC noch etwas schwer.
Wenn ich per Terminal ein Zeichen zum µC schicke, dort darauf warte und wiederum zum PC zurückschicke, kommts auch richtig an. Schicke ich jedoch per print-Befehl nur vom µC zum PC, kommt eigentlich nur Müll an. Einstellungen: 9600, 8, N, 1. Externer Quarz. Kann mir da jemand helfen?
Ich möchte einfach größere aufgezeichnete Datenmengen "auf Knopfdruck" auslesen und auswerten.
Hat vielleicht jemand ein Beispiel auf PC-Seite/µC (VB/Bascom) um ein bisschen mehr Einblick zu bekommen? Dass ich den COM-Port öffnen und dann einlesen muss, usw. weiss ich ja, aber was noch???
wassermann
bravo, dreimal das gleiche thema erstellt ....
tu mal deinen quellcode posten, dann kann dir sicher geholfen werden.
sorry für die dumme frage: post=attachment??
deshalb ausnahmsweise hier.
Code:$regfile = "m8def.dat" $crystal = 8000000 ' used crystal frequency $baud = 9600 ' use baud rate $hwstack = 32 ' default use 32 for the hardware stack $swstack = 40 ' default use 10 for the SW stack $framesize = 50 ' default use 40 for the frame space Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.1 , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Postd.5 Config Lcd = 16 * 4 Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Dim A As Byte Dim Text As String * 15 Dim Laenge As Integer Text = "asd" Laenge = Len(text) Cls Config Serialout = Buffered , Size = 20 Enable Interrupts Print "abcd"; Do A = Waitkey() Print A Cls Locate 1 , 1 Lcd A Loop End
hey!
wenn ich das richtig sehe geht es dir um den ausdruck der nicht ankommt
nehme mal das ; weg dann sollte es eigendlich gehen.Print "abcd";
gruß Nico
Wer Rechtschreibfehler findet, darf sie behalten.
Ja es geht um den print-Befehl. Der Rest ist nur zum Test am LCD. Wenn ich's richtig verstanden habe, dann ist das ; ja nur für's CR/LF.
Auch ohne seh ich nicht meinen gewünschten Text.
Vielleicht liegt's auch am Steckbrett, da ich bei einer max-Wert-Erfassung per Interrupt um den Nulldurchgang des Signales auch ein Problem habe.
Ab und zu kommt's auch zu einem nicht gewollten Reset.
....da ich bei einer max-Wert-Erfassung per Interrupt um den Nulldurchgang des Signales auch ein Problem habe....
sag mal, verstehst du deinen eigenen text den du da geschrieben hast überhaupt? der kann technisch überhaupt nicht hinhauen.
warum schreibt ihr keinen eigenen programme und kennt nur die copy- und paste-taste.
Hast du daran gedacht die Fuse-Bits von deinem M8
auf externen Quartz umzustellen, sonst hast du nur
1 Mhz Takt und dann stimmt die Baud-rate nicht
@super_castle:
Danke für deine tolle Hilfe. Aber ein externes Signal (z.B. Analogwert/Wechselspg) abtasten ist allemal hilfreich in definierten Zeitintervallen ... also Interrupt. Ich bin zwar Anfänger bei den µC, aber meistens nicht ganz dumm ...
@jojo3:
Letzter Eintrag in der Liste, oder? Werd's nochmal kontrollieren...
Hast du auf der PC-Seite schon mal die Ausleserei programmiert?
Danke.
Ich hab das mal in Excel gemacht.
Man kann da ein Visul-Basic Macro erstellen;
bisher hab ich es aber leider nicht geschafft die
Serielle Schnittstelle "richtig" zu initialisieren.
D.H. man muss mal kurz z.B Hyperterminal starten
und wieder beenden.
Beim richtigen VB6 klappts besser mit MSComm Steuerelement
in excel gehts zb. so:
(mag nicht professionell sein, funktioniert aber, hab damit mal
einen AVR ausgelesen der als Daten-Logger fungierte)
Was mir bei deinem Programm noch auffällt, lass mal testweise
den serialbuffer weg, damit hatte ich mit bestimmten Konstellationen
auch schon mal Probleme.
Und geht das LCD wirklich mit: Db7 = Postd.5 statt Portd.5 ?
Ich hoffe das mit dem Anhang hat geklappt
....da ich bei einer max-Wert-Erfassung per Interrupt um den Nulldurchgang des Signales auch ein Problem habe....
ich vermute mal er macht per Timer alle paar ms ne ad-wandlung um
den Nulldurchgang einer Analogspannung zu messen ...
ich vermute mal er hat schon gesehen, dass er mit dem
integrierten ADC am Mega keine negativen Spannungen messen kann?
Oder hat er gleichspannung entkoppelt und ne Mittenspannung angelegt
wo er dann den Wechselanteil drüber legt?
naja, wird wohl so sein, aber wofür er das hier drinn hat weiß ich nicht:
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
hat doch $baud gesetzt ...
wenn die UART mist sendet hats idR Fehler bei entweder:
a Einstellung des Terminalprogrammes
b falsche Fuse-Einstellung für Taktrate des AVR
c falsche Frequenzangabe ($crystal)
Vor den Erfolg haben die Götter den Schweiß gesetzt
Lesezeichen