Witam,
Od niedawna jestem szczesliwym posiadaczem zestawu ZL3AVR z Atmega32.
Podczas proby uruchomienia komunikacji Atmega <=> PC (za posrednictwem adaptera Prolific Technology, Inc. PL2303 Serial Port).
Udaje mi sie wysylac dane (otrzymuje w terminalu komunikat "Witam!").
Natomiast wogole nie dziala mi przerwanie USART_RXC_vect.
Czestotliwosc taktowania to 16MHz.
Moj kod ma za zadanie, jedynie zapalic leda w momencie otrzymania jakiegokolwiek sygnalu.
Wejscie RxD mam polaczone z RxD uC poprzez zwarcie pinow JP4.
Jest juz dosc pozno, a ja nie wiem co jest grane. Moze ktos mial podobne doswiadcznia?
Z gory dziekuje za pomoc.
Od niedawna jestem szczesliwym posiadaczem zestawu ZL3AVR z Atmega32.
Podczas proby uruchomienia komunikacji Atmega <=> PC (za posrednictwem adaptera Prolific Technology, Inc. PL2303 Serial Port).
Udaje mi sie wysylac dane (otrzymuje w terminalu komunikat "Witam!").
Natomiast wogole nie dziala mi przerwanie USART_RXC_vect.
Czestotliwosc taktowania to 16MHz.
Moj kod ma za zadanie, jedynie zapalic leda w momencie otrzymania jakiegokolwiek sygnalu.
#include <avr/io.h>
#include <avr/interrupt.h>
#include<util/delay.h>
ISR(USART_RXC_vect) {
PORTB |= _BV(0);
}
void USART_Init(void) {
UCSRA |= _BV(U2X);
UBRRH = 0;
UBRRL = 207;
UCSRB = (1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
void USART_Transmit(uint8_t dane) {
while((UCSRA & (1<<UDRE)) == 0);
UDR = dane;
}
void send_string(const char *tekst)
{
while(*tekst)
USART_Transmit(*tekst++);
}
int main(void) {
USART_Init();
sei();
DDRB |= _BV(0);
send_string("Witaj!");
for(;;)
return 0;
}
Wejscie RxD mam polaczone z RxD uC poprzez zwarcie pinow JP4.
Jest juz dosc pozno, a ja nie wiem co jest grane. Moze ktos mial podobne doswiadcznia?
Z gory dziekuje za pomoc.