- LiTime Speicher und Akkus         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: WinAVR: Erste Schritte in C bei Roboterboard

  1. #11
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Anzeige

    Powerstation Test
    Danke! Sieht gut aus, ob es geht konnte ich noch nicht testen, denke aber schon. Wäre aber gut wenn u es als Quelltext postest, dann kann man gleich rein schaun! EInfach hier rein kopieren, markieren und dann CODE-Button klicken

    So:

    Code:
    /* 
    Testprogramm 2
    
    Aufgabe:
    Testen vom MAX232 und RS232 Schnittstelle indem
    das Wort Hallo und eine Zahl an die RS232 sendet!
    Unter Windows kann man das mit dem Hyperterminal
    anzeigen lassen (9600 Baud einstellen)
    Noch einfacher kann man es anzeigen, wenn man
    in der Bascom Entwicklungsumgebung unter Tools
    TERMINAL EMULATOR aufruft (oder Modem Symbol klickt)
    
    	Chip       Mega 16
    	Takt 	   8.00 MHz 
    	Stand:     läuft
    	Größe      396 Byte
    	Version	   1.0						
    	Verfasser: Dino Dieter				*/
    	
    #include <avr/io.h>
    #include <stdlib.h>
    
    //Deklaration der Funktionen
    void putc(char c);				//Ausgabe eines Zeichen über RS232
    void puts(char *s ); 			//Ausgabe eines Strings über RS232
    void init(void);				//Einstellen der Hardware des uC
    
    // Baudrate berechen zum einstellen des UART. Lassen wir vom Complier berechnen
    #define F_CPU            8000000      /* 8.000 */
    #define UART_BAUD_RATE      9600      /* 9600 baud */
    #define UART_BAUD_SELECT (uint)(F_CPU/(UART_BAUD_RATE*16l)-1)
    
    //Definition einiger Datentypen, reine Geschmacksache
    #define uchar	unsigned char		// 1 Byte ohne Vorzeichen 0 bis 255 erlaubt
    #define uint	unsigned int		// 2 Byte ohne Vorzeichen 0 bis 65535 erlaubt
    
    // Sendet ein Zeichen über die UART Schnittstelle (RS232) +++++++++++++++++++++
    void putc(char c) 
    {
    	while( (UCSRA & 1<<UDRE) == 0 );	//warten, bis UDR leer ist
        UDR = c;							//und ausgeben, den Rest macht der uC alleine
    }
    
    //Sendet einen String über die UART Schnittstelle (RS232) +++++++++++++++++++++
    void puts(char *s ) 
    {
        while( *s )			//Schleife solange wiederholen bis 0 kommt. Strings in 
    						//C werden immer mit einer 0 abgeschlossen.
        putc( *s++ );		//ein Zeichen ausgeben und nächste Zeichen einstellen
    }
    
    
    //Einstellen der Hardware des AVR +++++++++++++++++++++++++++++++++++++++++++++
    void init(void) 
    {
    	// UART einstellen
    	UCSRB = (1<<TXEN); 			 // Senden erlauben
    	//Baud rate einstellen für 9600 BAUD bei 8 MHz
    	UBRRH = UART_BAUD_SELECT >> 8;	 // oberen 4 Bits schreiben
     	UBRRL = UART_BAUD_SELECT;	     // unteren 8 Bits schreiben
    }
    
    //Hauptprogramm, hier startet der uC ++++++++++++++++++++++++++++++++++++++++++
    void main (void) 
    {
    
        init();				// Hardware einstellen gehen
    	uint i;		    	// Variable bekannt machen
    	uchar s[10];		// Variable für itoa, zum umrechnen einer INT in einen String
    						
    	for(;;)				// Endlosschleife
    	{
    		itoa( i, s, 10 );	// i umrechen in String für die Ausgabe. Ergebnis steht
    							// dann in s.
    		puts("Hallo ");		// Text senden
    		puts(s);			// Zahlen ausgeben 
    		puts( "\n\r" );		// Zeilenumbruch senden  -- >> neue Zeile
    		i++;				// i um 1 erhöhen.   i++ -->  i = i + 1
    	}
    	
    }

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    20.03.2004
    Ort
    Oberried
    Beiträge
    10
    Hallo zusammen,

    ich habe den Einstieg geschaft. Es läuft bei mir das auf C umgeschriebene Testprogamm 4 plus eine Geschwindigkeits-Steuerung über den PC.

    Auf dem PC läuft ein kleines Visual-Basic Programm, das über die serielle Schnittstelle Kommandos an Board abschickt. Zur Zeit gibt es Komandos zum Einstellen der Schrittmotoren-Geschwindigkeit von 0 bis 1023 und ein Kommando zum Stoppen der Motoren. Weitere sind geplant. Debug-Informationen werden vom Board zurück an den PC-geschickt und im Visual-Basic Steuerprogramm angezeigt.

    Ich habe verwendet:
    - WinAVR-20040404 - C-Compiler
    - AVR Studio 4 - Simulator
    - Roboter-Board Version 1.2
    - PonyProg2000 - zum Programmieren
    - http://www.kreatives-chaos.com/index.php?seite=avrgcc - Tutorial sehr zielstrebig, genau, das was ich zum Einstieg brauchte
    - Visual Basic 6.0 - PC-Steuerprogramm

    Ich wäre schon bereit, die Basic-Programme nach C zu portieren. Ich müsste nur sicher sein, dass nicht noch mehrere Leute daran arbeiten. Dann könnte ich mir den Aufwand sparen. Frank, hast du den Überblick, ob schon jemand daran arbeitet? Kannst du das koordinieren?

    Gruss

    VictoriaOnSnow

  3. #13
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    28.04.2004
    Ort
    Nähe Köln
    Alter
    57
    Beiträge
    247
    Hallo

    Testprogramm 2 ist ja oben schon, Testprogramm 7 mache ich Morgen.

    Hatte gerade noch ein wenig mit meinem RC5 Sender auf einem Tiny12 zu tuen.

    Poste dein Programm doch mal, man lernt ja nie aus.

    MFG
    Dieter

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    20.03.2004
    Ort
    Oberried
    Beiträge
    10
    Zitat Zitat von Dino Dieter
    Poste dein Programm doch mal, man lernt ja nie aus.
    Hier ist mein erstes C-Programm zum Ansteuern 2-er Getriebemotoren (ich hatte im Posting zuvor versehendlich von Schrittmotoren gesprochen).

    Über das beigefügte Windows-Programm kann man die Geschwindigkeit über die serielle Schnittstelle steuern. Die Bedienung sollte keiner grossen Erläuterung bedürfen:

    RnbFraCtrl.exe starten
    ComPort auswählen und einschalten
    Geschwindigkeit einstellen (muss eine Zahl zwischen 0 und 1023 sein)
    Button Senden schreibt den Befehl zum Board.
    Read liest den Empfangspuffer aus und schreibt den Inhalt auf den Bildschirm.

    Über Feeback und Verbesserungsvorschläge würde ich mich freuen.

    VictoriaOnSnow
    Angehängte Dateien Angehängte Dateien

  5. #15
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Zitat Zitat von VictoriaOnSnow
    Ich wäre schon bereit, die Basic-Programme nach C zu portieren. Ich müsste nur sicher sein, dass nicht noch mehrere Leute daran arbeiten. Dann könnte ich mir den Aufwand sparen. Frank, hast du den Überblick, ob schon jemand daran arbeitet? Kannst du das koordinieren?
    Soweit ich weiß bastelt an den C Programmen sonst keiner mehr. Denke alle betreffenden lesen hier mit so das ihr Euch gegenseitig absprechen könnt.

    Wäre nur schön wenn ihr den Qeullcode als Text posten könntet, dann kann man schneller rein schaun. Einfach ist Posting als Text!

    Aber ich kann ja später alle C-Sourcen nochmal zusammentragen und geordnet in einen Thread stellen. Wäre schön wenn hier im Thread immer kurz bestätigt wird welches Beispiel ausgetestet wurde.
    Es bleibt Euch natürlich vorbehalten auch weitere Demos als die 8 ersten von mir zu basteln, falls Euch nochwas einfällt.

  6. #16
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Aber sehe schon, das mit Quellcode ist in C etwas schwierig wegen der Header Files usw. na dann vielleicht doch als ZIP wenn es zu viele Files werden.

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiTime Speicher und Akkus