Skocz do zawartości

at90s2313 problem z wyslaniem po rs


fixa

Pomocna odpowiedź

witam

jestem poczatkujacy w tym temacie, postawilem sobie ambitne zadanie ujarzmic uarta.Pojawily sie jednak problemy z ktorymi borykam sie od trzedni. Na poczatek chce zeby procek wysylal znak. Oto moj kod prosze o wyrozumialosc i pomoc 🙂

#include <avr/io.h>
#include <avr\io2313.h> 
#include <util/delay.h>
//#include <avr\signal.h>
#include <avr\interrupt.h>
#define F_CPU 4000000 ul

void uart(void);
void porty(void);
void wyslij(char znak);


int main(void)
{
uart();
porty();
for(;;)
{
if(PIND & 1<<4)		
{
	PORTB=~(1<<1);
	_delay_ms(200);
	wyslij('j');
	_delay_ms(200);


}
else
{
_delay_ms(200);
//PORTB=1<<0;
if(USR & 1<<TXC)
	{
	PORTB=~(1<<2);
	USR=(!(1<<TXC));
	}
}


}

return 0;
}


void uart(void)
{
UBRR=103;
UCR=1<<TXEN | 1<<TXCIE | 1<<UDRIE;
}

void porty(void)
{
DDRD=1<<6 | 1<<5;
DDRB=0xff;
PORTD=0x00;
PORTB=0x00;
}

void wyslij(char znak)
{
_delay_ms(200);
UDR=znak;
_delay_ms(200);
_delay_ms(200);
_delay_ms(200);
_delay_ms(200);

}


klocek pracuje z kwarcem 4 MHz, moje pytanko brzmi czy cos trzeba poprawic w kodziie, jak poprawnie skofigurowac hyperterminala zeby zobaczyc ten znak(pod winxp) i druga rzecz czy cos trzeba usawiac z fusebit-ami

z gory wielkie dzieki za jakakolwiek pomoc

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.