-         

Ergebnis 1 bis 9 von 9

Thema: Print-Befehl.. aber wie?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    25.07.2005
    Beiträge
    10

    Print-Befehl.. aber wie?

    Anzeige

    Ich hab auch ein Problem mit dem Print-Befehl... ja ich habe schon im Forum gesucht, aber nichts vernünftiges gefunden.
    Der Atmega16 ist wie folgt programmiert:

    Code:
    $regfile = "m16def.dat"                                     'Deklarationen für den ATmega16
    $crystal = 1600000                                          'Interner RC-Oszillator mit 1 MHz
    $baud = 9600                                                'UART-Baudrate: 9600 Baud
    
    Anfang:
      Printbin &B00000001
      Waitms 1000
    Goto Anfang
    Nunja, ich versuche nun mit dem Windows Terminal das zu empfangen, was über die serielle Schnittstelle gesendet wird. Aber anstatt des Zeichens bekomme ich 01111111 bzw. Dezimal 127 zurück (das Zeichen sieht aus, wie nen Haus).
    Kann mir jemand sagen, was ich falsch mache?

    Mein Grund Gedanke war eigentlich, dass ich das, was an den MicroController gesendet wird, wieder zurück an den PC sende... Das hatte ich nach einem Beispiel wie folgt versucht:
    Code:
    $regfile = "m16def.dat"                                     'Deklarationen für den ATmega16
    $crystal = 1000000                                          'Interner RC-Oszillator mit 1 MHz
    $baud = 9600                                                'UART-Baudrate: 9600 Baud
    
    Onrxd:                                                      'EIN Zeichen ist in der UART eingetroffen
      Printbin udr
    Return
    Kann mir jemand bei der Lösung des Problems helfen?`

    Vielen Dank.
    cu
    Karlja

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Schau mal da, vielleicht hilft es

    http://www.roboternetz.de/wiki/pmwik...sComVergleich1
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    25.07.2005
    Beiträge
    10
    Also, auf den folgenden Code:
    Code:
    $regfile = "m16def.dat"                                     'Deklarationen für den ATmega16 
     $crystal = 1600000                                          'Interner RC-Oszillator mit 1 MHz 
     $baud = 9600                                                'UART-Baudrate: 9600 Baud
     
     Print "Hello, world !"
     End
    gibt es als Antwort im Windows Terminal ein schickes Dreieck bzw. Dezimalwert 31... das hat mich also nicht wirklich weitergebracht.

    Woher weiß ich eigentlich den Wert für $crystal=... ?

    cu
    Karlja

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    37
    Beiträge
    464
    Falscher Takt!!!!!

    Hast den internen RC-Oszi laufen, oder??
    Im Kommentar heißt es "Interner RC-Oszillator mit 1 MHz"
    Einfach von der Hilfe kopieren geht natürlich nicht!!
    Dann musst crystal=1000000 setzen!!

    MFG

    Bertl

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    25.07.2005
    Beiträge
    10
    Habe beides ausprobiert und für den ATMega16 heißt es 0 - 16 Mhz Taktrate... womit ich also beides nutzen können müsste.
    Aber auch mit $crystal=16000000 funktioniert es bei mir nicht.

    Danke für den Tip.
    cu
    Karlja

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    37
    Beiträge
    464
    Hast du die Fuses eingestellt???

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    25.07.2005
    Beiträge
    10
    Ähm... so lange arbeite ich noch nicht mit MicroControllern... könnte ich zu dem Fuses einstellen eine kleine Erklärung bekommen? Sorry.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    mit den Fuses stellst du zB. ein, ab der AVR mit internem Takt (und da mit welcher Frequenz) , externem Takt (nicht einstellen!) oder mit einem Quarz arbeitet. Wenn der AVR einen Quarz hat , steht aber auf "intern" , dann geht natürlich nix, weil Bascom dann die Baudraten falsch brechnet.
    Also erst mal gucken, welche interne Quarzfrequenz bei dir eingestellt ist.
    Im Auslieferungszustand sind die AVRs auf internen Takt eingestellt.
    Mußt mal gucken, wie man bei deinem Programmer die Fuses einstellen kann.
    Externer Takt deshalb nicht, da man sonst einen externen Quarzoszillator anschliessen muß, damit er funktioniert (und programmiert werdern kann).
    Es gibt auch noch jede Menge andere Fuses (größe des Bootsektors usw.)

    Gruß
    Christopher

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    25.07.2005
    Beiträge
    10
    Achso...
    wie bekomme ich denn die Interne QuarzFrequenz heraus.
    Und programmieren tu ich das mit Bascom...

    cu
    Karlja

Berechtigungen

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