V
vermi
Guest
Ciao ragazzi ..
So che questo molto semplice .. ma ancora avere i problemi con questa ...
ok, prima ho i miei vecchi bordo (1 attiny 2313 MAX232) che continuano a lavorare bene (suppongo ... e può vedere il motivo per cui nel mio prossimo spiegazione ...) e il mio nuovo consiglio (1 attiny 2313 max 232).
il problema sono i seguenti:
1.nel mio vecchio bordo, il programma viene eseguito in basso ... ma anche nel mio nuovo consiglio
doesnt eseguire well.Both bordo, i test con HyperTerminal ... nel mio vecchio bordo del suo ritorno sempre bene, ma nella mia nuova pensione (il suo ritorno carattere 'w' root o carattere o un altro personaggio che in
doesnt ascii tabella ...)
Codice:/************************************************* ****
Tipo di chip: ATtiny2313
Frequenza di clock: 4,000000 MHz************************************************** *** /# include <tiny2313.h>
# include <delay.h># define RXB8 1
# define TXB8 0
# define UPE 2
# define ovr 3
# define FE 4
# define UDRE 5
# define RXC 7# define FRAMING_ERROR (1 <<FE)
# define PARITY_ERROR (1 <<UPE)
# define DATA_OVERRUN (1 <<ovr)
# define DATA_REGISTER_EMPTY (1 <<UDRE)
# define RX_COMPLETE (1 <<RXC)/ / Prendi un carattere da USART Receiver
# ifndef _DEBUG_TERMINAL_IO_
# define _ALTERNATE_GETCHAR_
# pragma utilizzati
char getchar (void)
(
char status, i dati;
while (1)
(
mentre (((status = UCSRA) & RX_COMPLETE) == 0);
UDR = dati;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN)) == 0)
restituzione dei dati;
);
)
# pragma-utilizzati
# endif/ / Scrivi un carattere a USART Transmitter
# ifndef _DEBUG_TERMINAL_IO_
# define _ALTERNATE_PUTCHAR_
# pragma utilizzati
void putchar (char c)
(
while ((UCSRA & DATA_REGISTER_EMPTY) == 0);
UDR = c;
)
# pragma-utilizzati
# endif/ / Standard Input / Output funzioni
# include <stdio.h>/ / Variabili globali Dichiarare il tuo quivoid main (void)
(
char temp;
/ / USART inizializzazione
/ / Parametri di comunicazione: 9 Data, 1 Stop, n. Parità
/ / USART Receiver: Il
/ / USART trasmettitore: Il
/ / USART Mode: Asynchronous
/ / USART Baud Rate: 9600
UCSRA = 0x00;
UCSRB = 0x1C;
UCSRC = 0x06;
UBRRH = 0x00;
UBRRL = 0x19;while (1)
(
/ / Luogo il codice qui
temp = getchar ();
UCSRB = UCSRB & 0xFE;
putchar (temp);
)
So che questo molto semplice .. ma ancora avere i problemi con questa ...
ok, prima ho i miei vecchi bordo (1 attiny 2313 MAX232) che continuano a lavorare bene (suppongo ... e può vedere il motivo per cui nel mio prossimo spiegazione ...) e il mio nuovo consiglio (1 attiny 2313 max 232).
il problema sono i seguenti:
1.nel mio vecchio bordo, il programma viene eseguito in basso ... ma anche nel mio nuovo consiglio
doesnt eseguire well.Both bordo, i test con HyperTerminal ... nel mio vecchio bordo del suo ritorno sempre bene, ma nella mia nuova pensione (il suo ritorno carattere 'w' root o carattere o un altro personaggio che in
doesnt ascii tabella ...)
Codice:/************************************************* ****
Tipo di chip: ATtiny2313
Frequenza di clock: 4,000000 MHz************************************************** *** /# include <tiny2313.h>
# include <delay.h># define RXB8 1
# define TXB8 0
# define UPE 2
# define ovr 3
# define FE 4
# define UDRE 5
# define RXC 7# define FRAMING_ERROR (1 <<FE)
# define PARITY_ERROR (1 <<UPE)
# define DATA_OVERRUN (1 <<ovr)
# define DATA_REGISTER_EMPTY (1 <<UDRE)
# define RX_COMPLETE (1 <<RXC)/ / Prendi un carattere da USART Receiver
# ifndef _DEBUG_TERMINAL_IO_
# define _ALTERNATE_GETCHAR_
# pragma utilizzati
char getchar (void)
(
char status, i dati;
while (1)
(
mentre (((status = UCSRA) & RX_COMPLETE) == 0);
UDR = dati;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN)) == 0)
restituzione dei dati;
);
)
# pragma-utilizzati
# endif/ / Scrivi un carattere a USART Transmitter
# ifndef _DEBUG_TERMINAL_IO_
# define _ALTERNATE_PUTCHAR_
# pragma utilizzati
void putchar (char c)
(
while ((UCSRA & DATA_REGISTER_EMPTY) == 0);
UDR = c;
)
# pragma-utilizzati
# endif/ / Standard Input / Output funzioni
# include <stdio.h>/ / Variabili globali Dichiarare il tuo quivoid main (void)
(
char temp;
/ / USART inizializzazione
/ / Parametri di comunicazione: 9 Data, 1 Stop, n. Parità
/ / USART Receiver: Il
/ / USART trasmettitore: Il
/ / USART Mode: Asynchronous
/ / USART Baud Rate: 9600
UCSRA = 0x00;
UCSRB = 0x1C;
UCSRC = 0x06;
UBRRH = 0x00;
UBRRL = 0x19;while (1)
(
/ / Luogo il codice qui
temp = getchar ();
UCSRB = UCSRB & 0xFE;
putchar (temp);
)