- LiFePO4 Speicher Test         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 21

Thema: Max232n + M16 Merkwürdige ausgabe

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    13.09.2005
    Alter
    47
    Beiträge
    15

    Max232n + M16 Merkwürdige ausgabe

    Anzeige

    E-Bike
    Hallo,
    ich hab da mal so ein Anfängerproblem,
    Ich hab mir gestern überlegt, da ich inzwischen das 3. 27*4 LCD von Polin kaputt gemacht bzw. Bescheidenen Erfolg hatte(weis nicht warum), hab ich es also gestern mal mit Serial probiert. Ich hab einen Max232n von Pollin entsprechend angeschlossen, nur kommt eine merkwürdige Ausgabe am PC. Vieleicht weis einer von euch woran das liegt.
    Die Baudraten kann ich von 1200 bis 9600 beliebig beim Prozessor und Gleichzeitig im Terminal um stellen es kommt immer die gleiche anzeige.

    Code:
    $regfile = "m16def.dat"
    $crystal = 800000
    
    '-------------------------------------------------------------------
    '                        RC5.BAS
    '                (c) 1999-2003 MCS Electronics
    '         based on Atmel AVR410 application note
    '-------------------------------------------------------------------
    
    Config Pina.2 = Output                                      'Strom für IR Empfänger
    Porta.2 = 1
    Config Pina.3 = Output                                      ' Gnd für IR + LED
    Porta.3 = 0
    Config Pina.4 = Output                                      'Strom für Status LED
    Porta.4 = 1
    
    
    'use byte library for smaller code
    $lib "mcsbyte.lbx"
    
    'This example shows how to decode RC5 remote control signals
    'with a SFH506-35 IR receiver.
    
    'Connect to input to PIND.2 for this example
    'The GETRC5 function uses TIMER0 and the TIMER0 interrupt.
    'The TIMER0 settings are restored however so only the interrupt can not
    'be used anymore for other tasks
    
    
    'tell the compiler which pin we want to use for the receiver input
    
    
    Config Rc5 = Pina.0
    
    'the interrupt routine is inserted automatic but we need to make it occur
    'so enable the interrupts
    Enable Interrupts
    
    'reserve space for variables
    Dim Address As Byte , Command As Byte
    Print "Waiting for RC5..."
    
    Do
      'now check if a key on the remote is pressed
      'Note that at startup all pins are set for INPUT
      'so we dont set the direction here
      'If the pins is used for other input just unremark the next line
      'Config Pind.2 = Input
      Getrc5(address , Command)
    
      'we check for the TV address and that is 0
      If Address = 0 Then
         'clear the toggle bit
         'the toggle bit toggles on each new received command
         'toggle bit is bit 7. Extended RC5 bit is in bit 6
         Command = Command And &B01111111
         Print Address ; "  " ; Command
         Print "Waiting for RC5..."
      End If
    Loop
    End
    Die ausgabe wenn ich nun auf z.B. die 5 der Fernbedienung drücke ist:

    öû«•ëQ=-ÿiú›
    Úü[y•£££åÿöû«•ëQ=--#1¿3!y•£££åë


    Also was mach ich da nun noch falsch.

    MfG[/img]

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Nun, ich seh in dem Programm keine Baudraten-Angabe ?

    ($BAUD=nnnn)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Also was mach ich da nun noch falsch.
    Den falschen Code benutzen?
    Ich sehe im Code nichts, was einen MAX232 benötigt.
    Außerdem hast du "nur" einen 800kHz Quarz angeschlossen. Damit kann es nur zu Fehlern kommen, wenn du in wirklichkeit 8MHz meintest.

  4. #4
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Zitat Zitat von Marco78
    Ich sehe im Code nichts, was einen MAX232 benötigt.
    print ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    13.09.2005
    Alter
    47
    Beiträge
    15
    Das mit dem Quartz ist mir noch garnicht aufgefallen
    die Baudrate stelle ich im Bascom ein, aber ich hab jetzt mal im Code mit aufgenommen, aber trotsdem ist die Anzeige imer noch wirwar.
    doch doch Print ist mit drinnen da soll jedesmal senden wenn ich auf der Fernbedinung etwas Drücke. Ist ein Sample von Bascom zum verstehen lernen.
    Code:
    $regfile = "m16def.dat"
    $crystal = 8000000
    $baud = 9600

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Sorry, das Print habe ich überlesen bei den ganzen Kommentaren.

    Im Terminal ist die gleiche Baudrate eingestellt? Das Anschlusskabel ist 100%ig richtig? Der MAX232 ist 100%ig richtig angeschlossen?

    Im Code ist sonst kein Fehler zu sehen. Das Baud in den Settings eingestellt ist, ist Ok. Sobald ein Print o.ä. kommt, wird die Einstellung übernommen.

  7. #7
    Gast
    Ich weis garnicht was mann da so noch falsch machen kann, die Schaltung hab ich schon xmal geprüft.
    Eigentlich wird ja auch so alles gemacht was er soll er wartet braf bis ich was auf der FB drücke und schickt alles zum Pc, nur die Zeichen sind nicht lesbar, das heist für mich eigentlich das ich das richtig verdratet hab, sonst würde doch garnix zucken oder ?
    Kann ich da irgenwas mit einem Multimeter messen um die Funktion zu überprüfen ?

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    13.09.2005
    Alter
    47
    Beiträge
    15
    ich war wohl nicht eingeloggt ...

    das Kabel ist eins mit 2 weiblichen steckern wo ich den stecker auf das board stecken kann ich hab da stiftleisten zurechtgebogen damit es passt.
    Ich hab mich an dieser http://www.mikrocontroller.net/tutorial/uart Schaltung orientiert nur die Dräte wegen des kabels Spiegel verkehrt angeschlossen damit ich die selbe funktion hab und den MAX323N entsprechend dem Datenpbatt angeschlossen. Ist doch so richtig oder den sonst würde ja nix am PC ankommen.

  9. #9
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Wenn $crystal und $baud stimmen und auch die Fuses für externen Quarz eingestellt sind (und der Quarz auch stimmt), sind die Bascom "Print"-Funktionen Büffel, die immer funktionieren.
    Back to the roots: Schreib ein Programm, das einmal in der Sekunde "Hello" schreibt.
    DO
    PRINT "HELLO"
    Waitms 1000
    LOOP
    Egal, was du am Terminal siehst, du kannst abschätzen, ob die Sekunde auch stimmt.
    Wenn du NUR am AVR die Baudrate änderst, sollten sich die Zeichen auch irgendwie verändern. Tun sie das nicht, iswas mit der Hardware am MAX (Pegel verkehrt oder sonstwas)

    Sind die Zeichen, die du siehst, Sonderzeichen > 127, nimmt er dein Stop-Bit als Datenbit, ---> d.h. Der AVR ist zu schnell.

    Noch was: HELLO + LF + CR sind sieben Zeichen. Wieviele Zeichen siehst du am Schirm (für ein "Hello") ?

    Mehr Zeichen am Schirm ---> AVR zu langsam
    Weniger---> AVR zu schnell
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    13.09.2005
    Alter
    47
    Beiträge
    15
    für ein Hello kommen 6 zeichen wenn ich im terminal die Baudrate kleiner als des MC kommen drei zeichen wenn ich höher mache als MC kommen tatsächlich mehr zeichen raus.

    oder meinst du ich soll an dem MC eine kleinere Frequenz einstellen ? Ich benute noch derzeit den Internen Quartz, oder ist genau das mein problem?

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen