- LiTime Speicher und Akkus         
Ergebnis 1 bis 5 von 5

Thema: Grundsätzliches zu RP6 und Bascom

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    24.12.2007
    Beiträge
    13

    Grundsätzliches zu RP6 und Bascom

    Anzeige

    LiFePo4 Akku selber bauen - Video
    (Frage passt im Prinzip sowohl in RP6 als auch in Bascom Board, hab mal hier gepostet)
    Bin seit kurzem auch stolzer Besitzer eines RP6, also noch Neuling.

    C- Programmierung mit WinAVR, inkl. Programmupload usw. ist mir klar und funktioniert.

    Alternativ wollte ich mir auch die Bascom Entwicklungsumgebung mal ansehen, da ich glaube, dass da die Einstiegshürde bei meinem Sohn niedriger wäre.

    Soweit ich verstehe, gibt es im Moment zwei wesentliche Handycaps bei der Bascom-Programmierung des RP6:

    1.) Ein direkter Upload aus der IDE via mitgeliefertem USB-UART Anschluss ist nicht möglich, allerdings funktioniert der Umweg, die in Bascom erzeugten Hex-Files per RP6Loader hochzuladen.

    Hab mal ein Demoprogramm probiert, hat aber nicht funktioniert, Terminalprogramm des RP6Loaders bringt nur nicht lesbare Steuerzeichen nebst dem Hinweis: [RP6BOOT]

    Code:
    $regfile = "m32def.dat" 'Die Anweisung bestimmt Controllertyp, hier AVR Mega 32
     $framesize = 32         'Stackanweisungen, die eigentlich nur bei größeren Programmen
     $swstack = 32           'wirklich nötig werden
     $hwstack = 32
     $crystal = 16000000     'Die Frequenz des verwendeten Quarzes
    
     $baud = 9600            'Die Baudrate für RS232 Ausgabe.
                             'Sie muss auch bei PC Terminalprogramm identisch sein
      do
        Print "**** RN-Control sagt Hello World *****"
        wait 1
      loop
    Hat da jemand eine Meinung? Gibts irgendwo speziell eine Einführung RP6 Programmierung mit Bascom?

    2.) Es scheint auch so, dass die win WinAVR verfügbare Befehlslibrary wesentliche Funktionen enthält (z.B. das weiche Ansteuern der Servos, Distanzmessungen usw), die so in Bascom zunächst mal nicht verfügbar sind. Leider habe ich trotz Suche im Board hier auch keine Hinweise auf eine entsprechende Basic Library gefunden, war ich nur nicht gründlich genug beim Suchen?

    Danke für das Feedback, und sorry gleich mal vorweg, wenn ich doch etwas übersehen habe. Super Board!

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2007
    Beiträge
    386
    ich progge über die die ISP den rp6.

    du musst den schaltplan nehmen und jede baugruppe anschauen wo die verdrahtung liegt und dann geht es los.

    so habe ich den rp6 geproggt mit bascom.

    habe jetzt aber einen eigenen oberbau(2x atmega32-16 oder atmega644-20 je nach lust und laune auswechselbar) mit motortreiber ld298 entworfen, weil die Sensoren an der originalplatine vom rp6 das letzte sind.

    das fahrgestell habe ich auf räder gesetzt. die laufzeit hat sich um 70% erhöht.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.07.2007
    Beiträge
    386
    ....die so in Bascom zunächst mal nicht verfügbar sind....

    das ist das wunderbare was spass macht, eigene routinen entwerfen.
    die teilweise noch effektiver und besser sind.

    hier findest du alles für Bascom :

    https://www.roboternetz.de/wissen/in...ellcode_Bascom

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    $crystal = 16000000 'Die Frequenz des verwendeten Quarzes
    Der RP6 hat einen 8MHz-Takt.

    Du kannst auch den Loader als Terminal verwenden. Er kennt zwei Geschwindigkeiten, 500 kBaud zum Übertragen der Daten und 38,4kBaud für die Komunikation:

    #ifndef F_CPU
    #define F_CPU 8000000 //Base: 8.00MHz - DO NOT CHANGE!
    #endif

    ...

    /************************************************** ***************************/
    // Baudrates:

    #define BAUD_LOW 38400 //Low speed - 38.4 kBaud
    #define UBRR_BAUD_LOW ((F_CPU/(16*BAUD_LOW))-1)

    #define BAUD_HIGH 500000 //High speed - 500 kBaud
    #define UBRR_BAUD_HIGH ((F_CPU/(16*BAUD_HIGH))-1)

    #endif
    (Aus RP6RobotBase.h)

    In meiner abgespeckten Lib initialisiere ich den UART so (aus der Init() der RP6-Lib):
    Code:
    	// UART:
    	UBRRH = UBRR_BAUD_LOW >> 8;	// Setup UART: Baudrate is Low Speed
    	UBRRL = (uint8_t) UBRR_BAUD_LOW;
    	UCSRA = 0x00;
       UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
       UCSRB = (1 << TXEN) | (1 << RXEN) | (1 << RXCIE);
    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    24.12.2007
    Beiträge
    13

    Das war genau das Problem

    Hallo Radbruch,

    danke für die Tips (sorry, dass ich mich erst jetzt melde, war länger offline). Das waren genau die entscheidenden Hinweise zur funktionierenden Zusammenarbeit zwischen RP6 und Bascom-Demoversion
    * Quarzfrequenz auf 8 MHz setzen
    * Baudrate der Schnittstelle im Terminalmodus auf 38400 baud setzen.

    Code sieht damit wie folgt aus:
    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 8000000
    $baud = 38400
    
    Print "Hello, world!"
    End
    Vielleicht erleichtert's dem nächsten den Einstieg.

Berechtigungen

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

LiFePO4 Speicher Test