V
Vinesh Nair
Guest
hiiii,
blinkin im a conduit via ATMEGA32, i HVE le code mais quand je le code du M / C et le connecter à un conduit, plutôt que blinkin il est juste d'avoir on.can any1 dire poids est exactement le problème ..... mon code est donnée ci-dessous
# include <avr/io.h>
# include <avr/interrupt.h>
# include <avr/signal.h>
# include <inttypes.h>
# include <avr/iom16.h>
# define F_OSC 4000000 / * oscillateur de fréquence en Hz * /
# define UART_BAUD_RATE 9600
# define UART_BAUD_CALC (UART_BAUD_RATE, F_OSC) ((F_OSC) / ((UART_BAUD_RATE) * 16l) -1)
void delay_ms (unsigned ms courte) (
unsigned short outer1, outer2;
outer1 = 200;
while (outer1) (
outer2 = 1000;
while (outer2) (
while (ms) ms -;
outer2 -;
)
outer1 -;
)
)
void usart_putc (unsigned char c) (
/ / Attendre UDR prêt
while (! (UCSRA & (1 <<UDRE)));
UDR = c; / / envoie un caractère
)
void uart_puts (char * s) (
/ / Boucle jusqu'à ce que * s! = NULL
while (* s) (
usart_putc (* s);
s ;
)
)
void init (void) (
/ / Définit la vitesse de transmission
UBRRH = (uint8_t) (UART_BAUD_CALC (UART_BAUD_RATE, F_OSC)>>
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Cool" border="0" />
;
UBRRL = (uint8_t) UART_BAUD_CALC (UART_BAUD_RATE, F_OSC);
/ / Activer le récepteur et l'émetteur; permettre RX interrompre
UCSRB = (1 <<RXEN) | (1 <<TXEN) | (1 <<RXCIE);
/ / asynchrone 8N1
UCSRC = (1 <<URSEL) | (3 <<UCSZ0);
)
/ / Interruption peut être interrompu
/ / Signal ne peut pas être interrompu
SIGNAL (SIG_UART_RECV) (/ / USART RX interrompre
unsigned char c;
c = UDR;
usart_putc (c);
)
int main (void) (
init (); USART / / init
sei (); / / enable interrupts
/ / Envoi caractère initial
while (! (UCSRA & (1 <<UDRE)));
UDR = 0x43; / / "C"
while (! (UCSRA & (1 <<UDRE)));
UDR = 0x0D;
/ / Valide PD5 comme sortie
DDRD | = (1 <<PD5);
while (1) (
/ / PIN5 clair PORTD -> LED éteinte
PORTD & = ~ (1 <<PD5);
delay_ms (500);
/ / PIN5 PORTD set -> LED
PORTD | = (1 <<PD5);
delay_ms (500);
)
return 0;
)S'il vous plaît aidez-moi ............
blinkin im a conduit via ATMEGA32, i HVE le code mais quand je le code du M / C et le connecter à un conduit, plutôt que blinkin il est juste d'avoir on.can any1 dire poids est exactement le problème ..... mon code est donnée ci-dessous
# include <avr/io.h>
# include <avr/interrupt.h>
# include <avr/signal.h>
# include <inttypes.h>
# include <avr/iom16.h>
# define F_OSC 4000000 / * oscillateur de fréquence en Hz * /
# define UART_BAUD_RATE 9600
# define UART_BAUD_CALC (UART_BAUD_RATE, F_OSC) ((F_OSC) / ((UART_BAUD_RATE) * 16l) -1)
void delay_ms (unsigned ms courte) (
unsigned short outer1, outer2;
outer1 = 200;
while (outer1) (
outer2 = 1000;
while (outer2) (
while (ms) ms -;
outer2 -;
)
outer1 -;
)
)
void usart_putc (unsigned char c) (
/ / Attendre UDR prêt
while (! (UCSRA & (1 <<UDRE)));
UDR = c; / / envoie un caractère
)
void uart_puts (char * s) (
/ / Boucle jusqu'à ce que * s! = NULL
while (* s) (
usart_putc (* s);
s ;
)
)
void init (void) (
/ / Définit la vitesse de transmission
UBRRH = (uint8_t) (UART_BAUD_CALC (UART_BAUD_RATE, F_OSC)>>
<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Cool" border="0" />
;
UBRRL = (uint8_t) UART_BAUD_CALC (UART_BAUD_RATE, F_OSC);
/ / Activer le récepteur et l'émetteur; permettre RX interrompre
UCSRB = (1 <<RXEN) | (1 <<TXEN) | (1 <<RXCIE);
/ / asynchrone 8N1
UCSRC = (1 <<URSEL) | (3 <<UCSZ0);
)
/ / Interruption peut être interrompu
/ / Signal ne peut pas être interrompu
SIGNAL (SIG_UART_RECV) (/ / USART RX interrompre
unsigned char c;
c = UDR;
usart_putc (c);
)
int main (void) (
init (); USART / / init
sei (); / / enable interrupts
/ / Envoi caractère initial
while (! (UCSRA & (1 <<UDRE)));
UDR = 0x43; / / "C"
while (! (UCSRA & (1 <<UDRE)));
UDR = 0x0D;
/ / Valide PD5 comme sortie
DDRD | = (1 <<PD5);
while (1) (
/ / PIN5 clair PORTD -> LED éteinte
PORTD & = ~ (1 <<PD5);
delay_ms (500);
/ / PIN5 PORTD set -> LED
PORTD | = (1 <<PD5);
delay_ms (500);
)
return 0;
)S'il vous plaît aidez-moi ............