Atmega64 USART ongelma

R

rongo024

Guest
Olen kirjoittanut koodin AVR atmega64 USART viestintä, mutta se ei toimi laitteistossa.Mutta jos minä koe tätä koodia (tehtyään hex) ja Proteus se toimii.
minun koodi:
Koodi:# Include <avr/io.h>

# Define F_CPU 8000000UL

# Include <util/delay.h>

# Include <string.h># Define baudrate_1 9600UL

# Define baudrate_0 4800UL# Define ubrrval_1 (((F_CPU) / (baudrate_1 * 16UL)) -1)

# Define ubrrval_0 (((F_CPU) / (baudrate_0 * 16UL)) -1)haihtuvien unsigned char m1 [] = "baud_4800";void com_init_1 (void) / / viestintä initialization

(

UBRR1H = ubrrval_1>> 8;

UBRR1L = ubrrval_1;

UCSR1C | = (1 <<USBS1) | (1 <<UCSZ11) | (1 <<UCSZ10);

UCSR1B | = (1 <<TXEN1) | (1 <<RXEN1);

)void com_init_0 (void)

(UBRR0H = ubrrval_0>> 8;

UBRR0L = ubrrval_0;

UCSR0C | = (1 <<USBS0) | (1 <<UCSZ01) | (1 <<UCSZ00);

UCSR0B | = (1 <<TXEN0) | (1 <<RXEN0) | (1 <<RXCIE0);

)unsigned char uartgetc0 (void)

(

while (! (UCSR0A & (1 <<RXC0)));

palata UDR0;

)unsigned char uartgetc1 (void)

(

while (! (UCSR1A & (1 <<RXC1)));

palata UDR1;

)void uartgets1 (void)

(

unsigned char i = 0;

unsigned char c;

for (i = 0; i )

(

c = uartgetc1 ();

))

void uartgets0 (void)

(

unsigned char i = 0;

unsigned char ch;

for (i = 0; i )

(

ch = uartgetc0 ();

)

)

void uartputc0 (unsigned char tiedot)

(

while (! (UCSR0A & (1 <<UDRE0)));

UDR0 = tieto;

_delay_ms (100);)

void uartputc1 (unsigned char tiedot)

(

while (! (UCSR1A & (1 <<UDRE1)));

UDR1 = tieto;

_delay_ms (100);)

void uartputs0 (unsigned char m [], sign char LEN)

(

unsigned char i = 0;

for (i = 0; i <len; i )

(

uartputc0 (m );

)

)

void uartputs1 (unsigned char m [], sign char LEN)

(

unsigned char i = 0;

for (i = 0; i <len; i )

(

uartputc1 (m );

)

)int main (void)(

DDRE & = ~ (1 <<PE0);

DDRE | = (1 <<PE1);

DDRD & = ~ (1 <<PD2);

DDRD | = (1 <<PD3);

com_init_0 ();

com_init_1 ();

SEI ();while (1)

(

uartputs0 (4800, 4);

uartputc0 ("m");

_delay_ms (1000);

uartputs1 (9600, 4);

_delay_ms (1000);

uartputc1 ("m");

_delay_ms (1000);

)return 0;

)

 

Welcome to EDABoard.com

Sponsor

Back
Top