- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: RS232 mit AT90CAN128 Keine Verbindung

  1. #11
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    55
    Beiträge
    524
    Anzeige

    E-Bike
    Hallo,

    so ganz sind wir noch nicht am Ende
    Es gibt noch einige Fehlerquellen oder wir haben etwas übersehen.
    Hast du eine LED zum Blinken am µC?
    Bitte probiere einmal folgenden Code.
    Code:
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #define LEDPORT DDRA |= (1<<PA7)     
    #define LEDON PORTA |= (1<<PA7)
    #define LEDOFF PORTA &= ~(1<<PA7)
    #define F_CPU 16000000
    
    volatile uint8_t toggle;
    
    void InitUart (void){
    	uint16_t ubrr;
    	ubrr = ((F_CPU/(9600L*16L))-1); 
    	UBRR1H = (unsigned char)(ubrr>>8);
    	UBRR1L = (unsigned char) ubrr;
    	UCSR1B = (1<<RXEN1)|(1<<TXEN1);
    	UCSR1C = (1<<UCSZ11)|(1<<UCSZ10);
    }
    
    
    
    int main ()                  
    {
    
    LEDPORT;
    
    	TCCR1B = (1<<WGM12)|(1<<CS12)|(1<<CS10);
    	TIMSK1 |= (1<<OCIE1A);
    	OCR1A = 0x0680; 
        sei();
    	InitUart ();
       while(1)
       {
    		if (toggle > 0){
    		   	if (PORTA && (1<<PA7)){
    				LEDOFF;
    			}else{
    				LEDON;
    			}
    			toggle = 0;	
    		}
    	 	while ( !(UCSR1A & (1<<UDRE1)));
    		UDR1 = 'a';                     
       }
    return 0;   
    }
    
    
    ISR (TIMER1_COMPA_vect){
    	toggle = 1;
    }
    Im Bereich der #defines musst du das Programm halt anpassen. PORT und Pin der LED und Controllerfrequenz. Die LED sollte Blinken und das Programm ständig a senden. Bitte achte beim compilieren auch auf Warnungen. In hTerm 9600 Baud 8Data 1Stopbit keine Parity. Wenn das keinen Erfolg bringt, poste bitte die Einstellungen deiner Fusebits.
    Die LED habe ich mit rein genommen, damit man erkennen kann, ob sich der Controller ständig resettet.

    Gruß

    Jens

  2. #12
    Hy Jens,

    ich hab dein Programm mal rübergespielt, (danke schonmal) . Es blinkt auch, schickt aber kein a sondern ein C (siehe Screenshot, einmal das Winows-Terminal, einmal das Hterm_terminal). Es kommt auch nicht regelmäßig. Was komisch ist, wenn icvh an dem /Tx, GND, RX)-Stecker rumspiele und ihn abziehe, wird immer was gesendet. Ich habe meine Fuses-Einstellungen auch mal gepostet. Ich hab den internen RC-Oscillator genommen, um sicher zuu gehen, dass es von der Baudrate stimmt. (Hab zwar den Quarz-Oszillator dazugebaut, aber ich benutze ihn nicht....)

    Bis dann lG Anna
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken fuses.gif   windows_terminal.gif   hterm_rs232.gif  

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    55
    Beiträge
    524
    Hallo,

    na, es wird also etwas übertragen. Wir nähern uns dem Ziel. Du hast bei CKDIV8 einen Haken. Dadurch wird der Takt durch 8 geteilt. Hast du das berücksichtigt? Der Teiler in Kombination mit dem internen Quarz ist für RS232 eh etwas mager. Nimm den Quarz ohne den Teiler. Was mir noch aufgefallen ist, du hast JTAG aktiviert. Dadurch sind einige PIN's nicht als 'normale' I/O's zu gebrauchen. Das ist nicht schlimm, solange du daran denkst. Falls du JTAG nicht nutz empfehle ich dir, dass zu deaktivieren.

    Gruß

    Jens

  4. #14
    Hy Jens,

    es ist ein Wunder geschehen. Es funktioniert! Ich hab bei den Fuses, die Sachen verändert wo du gemeint hast. Jetzt funktioniert es!!!!! Vielen vielen vielen Dank. =D> Bin echt froh...........

    GLG Anna

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Labornetzteil AliExpress