- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 5 von 5

Thema: Initialisierung von USART mit Bascom (ATMega1284P)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Avatar von Tobi1970
    Registriert seit
    04.01.2013
    Alter
    53
    Beiträge
    3

    Idee Initialisierung von USART mit Bascom (ATMega1284P)

    Hallo Forum und Leser!

    Ich bin neu in diesem Forum, darum vor der eigentlichen Frage kurz zu mir:
    Mein Name ist Olaf, ich bin 42 Jahre jung (alt), gelernter R&F Techniker
    und betreibe das Hobby Elektronik intensiv seit meinem 9.Lebensjahr.
    Seit ein paar Monaten beschäftige ich mich mit Bascom, leider waren Programmiersprachen
    in den Jahren meiner Ausbildung noch keine Forderung wie so oft heute, darum
    bin ich nun dabei mir autodidaktisch Bascom näher zu bringen. Ich selber bezeichne
    mich als Anfänger, und darum Suche ich auch hier im Forum Rat.
    Ich hoffe auch, das ich die Forensuchfunktion richtig bedient habe, sollte meine Frage
    schon unzählige male behandelt worden sein, bitte ich um Verzeihung im vorraus.

    Worum es geht:

    Ich habe ein Atmel Eval-Board 1284P XPLAINED vor mir. Darauf sitzt jener Controller,
    und ein AT32UC3B1256, der lediglich als USB to UART Bridge fungiert.

    Was ich gerne wissen möchte ist, wie ich in Bascom den USART1 des Controllers initialisieren muss.
    Mir geht es darum, zuerst einfach z.B ein "Hallo Welt" auf einem Terminalprogramm darzustellen.
    Bislang funktionierten meine Versuche mit einem einfachen ATmega8, MAX232 als Pegelwandler,
    und seriellem Kabel zum PC immer einwandfrei.(Mit dem üblichen baud=Befehl)
    Jetzt aber wo es über USB und den neuen Controller geht, scheint es aber so zu sein,
    das dieser "gezielt" initialisiert werden muss. (mit initialisieren meine ich an dieser Stelle noch immer den USART, nicht falsch verstehen)
    Das bekomme ich nicht auf die Reihe. Vielleicht hat ja jemand hier ein kleines Codebeispiel das mir
    endlich die Augen öffnet?

    Danke, Olaf
    Geändert von Tobi1970 (18.03.2013 um 19:06 Uhr)

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Die Initialisierung des USB macht normal der PC. Vom AVR wird dieser einfach wie eine UART angesprochen.
    Wie so oft nur aus dem Kopf, sollte aber so gehen.
    Code:
    $baud = 19200 'für1.UART
    $baud1 = 19200 'für 2. UART
    dim b1 as byte
    dim b2 as byte
    Open "com2:" For Binary As #2 'für die 2. UART diese öffnen
    'Beispiel um angekommenes der einen UART auf der anderen auszugeben. z.B. als Baudratenwandler
    do
    If Ischarwaiting() = 1 Then
       B2 = Inkey() 'Empfang auf UART 1
       Print #2 , chr(b2); ' Ausgabe auf UART 2
    end if
    
    If Ischarwaiting(#2) = 1 Then
       B1 = Inkey(#2) 'Empfang auf UART 2
       Print chr(b1); ' Ausgabe auf UART 1
    end if
    loop
    end
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  3. #3
    Neuer Benutzer Avatar von Tobi1970
    Registriert seit
    04.01.2013
    Alter
    53
    Beiträge
    3
    Zitat Zitat von peterfido Beitrag anzeigen
    Die Initialisierung des USB macht normal der PC. Vom AVR wird dieser einfach wie eine UART angesprochen.
    Wie so oft nur aus dem Kopf, sollte aber so gehen.
    Code:
    $baud = 19200 'für1.UART
    $baud1 = 19200 'für 2. UART
    dim b1 as byte
    dim b2 as byte
    Open "com2:" For Binary As #2 'für die 2. UART diese öffnen
    'Beispiel um angekommenes der einen UART auf der anderen auszugeben. z.B. als Baudratenwandler
    do
    If Ischarwaiting() = 1 Then
       B2 = Inkey() 'Empfang auf UART 1
       Print #2 , chr(b2); ' Ausgabe auf UART 2
    end if
    
    If Ischarwaiting(#2) = 1 Then
       B1 = Inkey(#2) 'Empfang auf UART 2
       Print chr(b1); ' Ausgabe auf UART 1
    end if
    loop
    end
    Hallo peterfido, und Danke für Deine schnelle Antwort!!
    Auch wenn mir dein Beispielcode noch nichts auf mein Terminalprogramm gezaubert hat, lenkt es mich vielleicht
    in die richtige Richtung. Und sehr gerne nehme ich natürlich auch weitere Hilfe an!

    P.S auf meinem Board sieht es porttechnisch so aus...vielleicht macht es das für die Umsetzung in Bascom etwas leichter für den Erfahrenen...Klicke auf die Grafik für eine größere Ansicht

Name:	1284P.PNG
Hits:	5
Größe:	12,9 KB
ID:	24864
    Die Ports PD.2 (RXD1) und PD.3 (TXD1) sind direkt mit der USB to UART-Bridge verbunden.
    Geändert von Tobi1970 (19.03.2013 um 19:25 Uhr)

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    52
    Beiträge
    765
    Ja, wenn er auf dem einen Port nichts empfängt, sendet er auf dem anderen Port auch nichts. Für eine Ausgabe auf dem USB Teil müsste es dann etwa so gehen:


    Code:
    $baud = 19200 'für1.UART 
    $baud1 = 19200 'für 2. UART'<<Diese Baudrate im Terminal einstellen. Takt (crystal) richtig angeben!  
    Open "com2:" For Binary As #2 'für die 2. UART diese öffnen 'Beispiel um angekommenes der einen UART auf der anderen auszugeben. z.B. als Baudratenwandler 
    do
        Print #2 , "Hallo Welt!" ' Ausgabe auf UART 2
        wait 2
     loop
     end
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  5. #5
    Neuer Benutzer Avatar von Tobi1970
    Registriert seit
    04.01.2013
    Alter
    53
    Beiträge
    3
    Hallo peterfido......Heureka!! Es funktioniert..lediglich die Baudrate nach Deinem Beispiel bei mir angepasst (neben dem Controllertakt)....vielen herzlichen Dank für Deine Hilfe!
    Heute habe ich wieder einiges dazugelernt..wie nah die Lösung doch manchmal liegt

    Gruß, Olaf

Ähnliche Themen

  1. Tiny2313: Hilfe bei Initialisierung von Timer1
    Von Bumbum im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 22.02.2013, 11:19
  2. Bascom-USBISP zerstört durch ATmega1284P ?
    Von Yamimoto im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 12.11.2012, 19:56
  3. NiboBee mit ATMEGA1284P - Fuse Bits setzen?
    Von Friedleif im Forum Sonstige Roboter- und artverwandte Modelle
    Antworten: 1
    Letzter Beitrag: 15.09.2010, 00:36
  4. Stack initialisierung mit GCC?
    Von Tob im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 21.06.2009, 17:57
  5. USART Initialisierung
    Von Bub01 im Forum PIC Controller
    Antworten: 1
    Letzter Beitrag: 27.12.2007, 20:40

Berechtigungen

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

Labornetzteil AliExpress