Futura Sciences
Image de la rubrique en cours

Forum FS Generation

Précédent   Vous êtes ici : Forum FS Generation » Futura Technique » Électronique

Découvrir d'autres sujets sur ces thèmes : , ,


Réponse
Vieux 03/06/2008, 19h25   Sujet Problème UART AVR - Message #1
Blackmouse
 
Date d'inscription: août 2007
Messages: 25
Problème UART AVR
Bonjour,

Je cherche à communiquer avec mon atmega 162 par la liaison série, jusqu'au moment où il m'est apparu que l'engin à deux UART. C'est parfait, c'est ce que je voulais, mais du coup, je suis perdu :s

J'arrivais à faire ma communication avec un atmega 16 (un seul UART) et je suis reparti de mon programme en le modifiant pour prendre en compte mon deuxième uart, sans succès. Voila mon code.


Code:
#include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <avr/signal.h> /* Prototypes */ void InitUART (unsigned char baudrate); unsigned char ReceiveByte (void); void TransmitByte (unsigned char data); /* Main - simple program that recieves a character then transmits back the next character. An example would be if you send in an A, the chip will return a B */ int main (void) { unsigned char i; InitUART (51); /* Set the baudrate to 2400 bps using a 8MHz crystal */ while (1) { //TransmitByte (ReceiveByte () + 1); /* Echo the received character + 1. Example send in A then send out B */ TransmitByte('a'); //usart_puts(&s[0]); PORTA = 0x00; PORTB = 0x00; //for(int i =0; i<50000; i++){}*/ _delay_ms(1000); PORTA = 0xFF; PORTB = 0x00; _delay_ms(1000); //for (i = 0; i < 200; i++); } } /* Initialize UART */ void InitUART (unsigned char baudrate) { /* Set the baud rate */ UBRR0L = baudrate; /* Enable UART receiver and transmitter */ UCSR0B = (1 << RXEN0) | (1 << TXEN0); /* 8 data bits, 1 stop bit */ UCSR0C = (1 << UCSZ01) | (1 << UCSZ00); } /* Read and write functions */ unsigned char ReceiveByte (void) { /* Wait for incomming data */ while (!(UCSR0A & (1 << RXC0))); /* Return the data */ return UDR0; } void TransmitByte (unsigned char data) { /* Wait for empty transmit buffer */ while (!(UCSR0A & (1 << UDRE0))); /* Start transmittion */ UDR0 = data; }
C'est relativement simple, car dans la majeure partie des cas, il suffisait de rajouter un 0 à la fin, genre UDR devient UDR0 mais ca veut pas. Je n'ai rien sur mon pc alors qu'il est sencé m'envoyer un 'a' toutes les secondes...

A force d'être le nez sur le code, je dois rater une erreur grossière d'où mon appel à l'aide.

Merci d'avance de votre coup de main !!

Black
Blackmouse est déconnecté   Réponse avec citation
Alt Aujourd'hui
Publicité

Beitrag Liens sponsorisés

   
Vieux 03/06/2008, 22h25   Sujet Problème UART AVR - Message #2
Blackmouse
 
Date d'inscription: août 2007
Messages: 25
Re : Problème UART AVR
Après quelques tests, il semble que le problème soit au niveau du max232N que j'utilise. J'ai mis une led sur les différentes pattes et j'obtiens les résultats suivants :
- en sortie TX de l'avr, la led clignote (donc c'est OK, mon caractère passe bien)
- en entrée RX de l'avr, la led reste allumée (je comprend pas trop pourquoi... help !!)
- en entrée TX du max232N, si je tape une touche à mon pc, la led clignote
- en sortie RX de l'avr, quand je tape une touche, rien...

Je ne sais pas si ca vous aide à m'aider Je ne comprend plus rien en tout cas.

Merci merci d'avance !!
Blackmouse est déconnecté   Réponse avec citation
Bienvenue
Si ceci est votre première visite, vous devez vous inscrire avant de pouvoir envoyer des messages. En étant inscrit vous pourrez poster votre question, participer aux débats, joindre vos images... alors n'attendez-plus, cela vous prendra 1 minute !

Pour commencer à lire les messages, depuis la page d'accueil des forums, sélectionnez le forum qui vous tente et partez ensuite à sa découverte...

Publicité

A voir aussi
probleme uart pic24 (Forum Électronique)
Uart (Forum Électronique)
problème programmation ISP AVR (Forum Électronique)
UART avr (Forum Électronique)
carte UART (Forum Électronique)






A voir aussi (Futura Sciences n'est pas responsable du contenu de ces publicités)
Réponse



Outils
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Les dernières actualités
06/09 14:03 - L'ATV Jules-Verne a quitté l'ISS pour son dernier voyage
06/09 10:55 - Tabagisme passif : de très jeunes enfants hospitalisés…
05/09 16:12 - 2008 KV42, l'astéroïde qui tourne à l'envers
05/09 13:21 - Un thon robot pour l'armée américaine
05/09 11:37 - La Nasa envisage de prolonger la vie de ses navettes
05/09 09:34 - Flambée de fièvre Q aux Pays-Bas
04/09 17:30 - Bataille autour du sang de tyrannosaure

Fuseau horaire GMT +2. Il est actuellement 05h46.

Propulsé par vBulletin
Copyright © 2000 - 2008, Jelsoft Enterprises Ltd. Tous droits réservés.
Traduction par l'association vBulletin francophone