Witam
Mam problem z odpaleniem usarta na atmedze16. Problem tym bardziej irytujący, że już kiedyś to zrobiłem i myślałem, że teraz podłącze wszystko będzie śmigać. W sumie nie wiem gdzie sedno problemu, bo program ten sam, a wygląda tak:
Podłączenie zgodnie z:
Po pierwsze wysyłanie ma jakieś problemy i musiałem dać to delay 1ms, po drugie, niby coś tam wysyła, ale w hyperterminal, są krzaki typu u umlaut i E z kreseczką
Jakieś wskazówki? Takie objawy mogą na coś wskazywać, układ to dokładnie max232CPE
Mam problem z odpaleniem usarta na atmedze16. Problem tym bardziej irytujący, że już kiedyś to zrobiłem i myślałem, że teraz podłącze wszystko będzie śmigać. W sumie nie wiem gdzie sedno problemu, bo program ten sam, a wygląda tak:
#include <avr/io.h>
#include <util/delay.h>
#include <stdlib.h>
#include <string.h>
#define F_CPU 1000000UL // 1MHz wewnetrzny
#define BAUD 9600UL // predkosc transmisji
#define MYUBRR ((F_CPU/(16*BAUD))-1)
void UART_init(unsigned int ubrr) // inicjalizacja UArta
{
UBRRH = (unsigned char) (ubrr>>8); // ustawienie prędkości transmisji
UBRRL = (unsigned char) ubrr;
UCSRB = (1<<RXEN)|(1<<TXEN); // włączenie odbiornika oraz nadajnika
UCSRC = (1<<URSEL)|(3<<UCSZ0); // 8 bitów danych, 1 bity stopu, brak parzystości
}
void USART_out (unsigned char data) // wysłanie pojedynczego znaku
{
_delay_ms(1);
while((UCSRA&(1<<UDRE)) == 0);
UDR = data;
}
void wysString(unsigned char z[])
{
int i = 0;
while(i < 64)
{
if( z[i] == '\0' ) break;
USART_out(z[i++]);
}
}
int main(void)
{
int numer = 23;
char strTo[30] = "DC ";
char *strFrom[10];
itoa(numer, strFrom, 10); //zamiana int na string
char *strGo = "V\r";
strcat (strTo, strFrom); //scalanie stringow
strcat (strTo, strGo); //scalanie stringow
UART_init(MYUBRR); //inicjacja Uarta
while (1)
{
_delay_s(1);
wysString(strTo);
}
return 0;
}
Podłączenie zgodnie z:
Po pierwsze wysyłanie ma jakieś problemy i musiałem dać to delay 1ms, po drugie, niby coś tam wysyła, ale w hyperterminal, są krzaki typu u umlaut i E z kreseczką
Jakieś wskazówki? Takie objawy mogą na coś wskazywać, układ to dokładnie max232CPE
![[Atmega16][C] problem z RS [Atmega16][C] problem z RS](https://images30.fotosik.pl/324/a1a090afbcee69c6.jpg)