Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

UART avec ATMEGA8535



  1. #1
    jojo_lapin

    UART avec ATMEGA8535


    ------

    Bonjour,
    Je dois programmer une communication série entre un microcontrôleur ATMEGA8535 et un ordinateur sur avr.
    Est ce que quelqu'un pourra me donner les étapes à suivre ou me guider un peu, je suis vraiment perdue.
    Merci.
    Bonne journée.
    Jojo lapin.

    -----

  2. #2
    emule

    Re : UART avec ATMEGA8535

    j'utilise ca et ca marche tres bien:

    dans uart.h
    void uart_init( unsigned char baudrate );
    unsigned char uart_getc( void );
    void uart_putc( unsigned char data );
    void uart_puts(const unsigned char *s);
    void uart_puts_p(const char *progmem_s );


    #define uart_puts_P(__s) uart_puts_p(PSTR(__s))

    et dans uart.c

    #define F_CPU 4000000UL

    #include <avr/io.h>
    #include <util/delay.h>
    #include <avr/pgmspace.h>
    #include "uart.h"

    /* Initialize UART */
    void uart_init( unsigned char baudrate )
    {
    UBRR = baudrate; /* Set the baud rate */
    UCR = ( (1<<RXEN) | (1<<TXEN) ); /* Enable UART receiver and transmitter */
    }

    /* Read and write functions */
    unsigned char uart_getc( void )
    {
    while ( !(USR & (1<<RXC)) ) /* Wait for incomming data */
    ; /* Return the data */
    return UDR;
    }

    void uart_putc( unsigned char data )
    {
    while ( !(USR & (1<<UDRE)) )
    ; /* Wait for empty transmit buffer */
    UDR = data; /* Start transmittion */
    }

    //Transmit str to uart
    void uart_puts(const unsigned char *s)
    {
    while (*s)
    {
    while ( !(USR & (1<<UDRE)) )
    ; /* Wait for empty transmit buffer */
    UDR = *s++;
    }
    }


    void uart_puts_p(const char *progmem_s )
    {
    register char c;

    while ( (c = pgm_read_byte(progmem_s++)) )
    uart_putc(c);

    }

    suivant la frequence de ton processeur tu initialise de la facon suivante

    uart_init(41) //41 dans mon cas

    n'oublie de rajouter les #ifndef ... pour eviter les inclusion dans le fichier uart.h

  3. #3
    jojo_lapin

    Re : UART avec ATMEGA8535

    Je te remercie.
    Moi je vais utiliser avr pour programmer, non pas C.
    Est ce que cé la même chose?

  4. #4
    emule

    Re : UART avec ATMEGA8535

    ba oui avr-gcc
    winavr
    avec avr studio 4

Sur le même thème :

Discussions similaires

  1. Programmer un ATMEGA8535 en USB????
    Par technosvitman dans le forum Électronique
    Réponses: 3
    Dernier message: 03/07/2008, 16h23
  2. atmega8535 programmant atmega8535
    Par thomasalbert1993 dans le forum Électronique
    Réponses: 12
    Dernier message: 29/01/2008, 20h19
  3. Uart
    Par souma29 dans le forum Électronique
    Réponses: 1
    Dernier message: 17/04/2007, 00h03
  4. uart avec adresse sur at89c51 en c
    Par sifourquier dans le forum Électronique
    Réponses: 0
    Dernier message: 13/11/2006, 22h28
  5. ATMEL ATmega8535
    Par steffff dans le forum Électronique
    Réponses: 6
    Dernier message: 27/01/2005, 07h11