Jak je włączyć to CKOPT ?? musi być zaznaczone ptaszkiem czy odznaczone???
Czytałem note, dokładnie te słowa, które cytujesz, ale różnie różne programy traktują zaznaczenie"ptaszkiem".
problem jest taki że moj procek wysyła na rs po każdym resecie ciut minimalnie inne dane
#include <avr/io.h>
#include <util/delay.h>
#include <compat/deprecated.h>
#include <string.h>
unsigned char odebrane;
#define CPU_Hz 1000000 // częstotliwość zegara w Hz
#define OSC 16 // częstotliwość zegara w MHz
#define BAUD 19200 // prędkość transmisji po RS232
#define MYUBRR (CPU_Hz/(1ul*BAUD)-1)// CPU_Hz/8/BAUD-1
/// **** fukcje dla RS232 ****
void UART_init(unsigned int ubrr) // inicjalizacja
{
UBRRH = (unsigned char) (ubrr>>8); // ustawienie prędkości
UBRRL = (unsigned char) ubrr;
UCSRB = (1<<RXEN)|(1<<TXEN); // transmisja dwukierunkowa, odbieranie/nadawanie
UCSRC = (1<<URSEL)|(3<<UCSZ0); // ustawienie 8 bitów danych i 1 bity stopu
}
void USART_out (unsigned char data) // wysłanie znaku
{
while (!(UCSRA & (1<<UDRE)));
odebrane=UDR;
UDR = data;
}
unsigned char USART_in (void) // odebranie znaku
{
while (!(UCSRA & (1<<RXC)));
return UDR;
}
void USART_Flush( void )
{
unsigned char dummy;
while ( UCSRA & (1<<RXC) ) dummy = UDR;
}
//********* moje funkcje do portow *****************
void wyslijTekst(char *tekstDoWyslania)
{
while (!(UCSRA & (1<<UDRE)));
for(int i;i<=strlen(tekstDoWyslania);i++)
{
USART_out(tekstDoWyslania[i]);
}
USART_out(10);
//USART_Flush();
}
char bufor[100];
char bufor1[100];
char* czytajTekst()
{
for (int i=0;i<100;i++)
{
bufor[i]=0;
}
char *czytanyTekst="";
int p=0;
char litera=USART_in();
bufor[p]=litera;
while((litera=USART_in())!=10)
{
p++;
bufor[p]=litera;
}
//USART_Flush();
return bufor;
}
int porownaj(char* polecenie)
{
for (int i=0;i<100;i++)
{
bufor1[i]=0;
}
for (int i=0;i<=strlen(polecenie);i++)
{
bufor1[i]=polecenie[i];
}
int test=0;
for(int i=0;i<100;i++)
{
if (bufor[i]!=bufor1[i]) test+=1;
}
return test;
}
//************* obsloga diod ***************
void startujDiody()
{
DDRB=0xFF; //ustawiamy port b na wyjścia
wyslijTekst("Ustawiono port B na wyjscia");
}
void kasuj()
{
sbi(PORTB,0);
sbi(PORTB,1);
sbi(PORTB,2);
sbi(PORTB,3);
sbi(PORTB,4);
sbi(PORTB,5);
sbi(PORTB,6);
sbi(PORTB,7);
wyslijTekst("Zgaszono wszystkie diody");
_delay_ms(10000);
}
void zapalWszystkie()
{
cbi(PORTB,0);
cbi(PORTB,1);
cbi(PORTB,2);
cbi(PORTB,3);
cbi(PORTB,4);
cbi(PORTB,5);
cbi(PORTB,6);
cbi(PORTB,7);
wyslijTekst("Zapalono wszystkie diody");
_delay_ms(10000);
}
void zapal(int i)
{
cbi(PORTB,i);
wyslijTekst("Zapalono diode");
_delay_ms(10000);
}
void zgas(int i)
{
sbi(PORTB,i);
wyslijTekst("Zgaszono diode");
_delay_ms(10000);
}
int main(void)
{
UART_init(MYUBRR);
char *tekst= "Zaczynamy, wyslij cos, jezeli nie wiesz co zrobic, to napisz pomoc";
wyslijTekst(tekst);
startujDiody();
kasuj();
while(1)
{
/*
char a= USART_in();
wyslijTekst(strncat("Odebrano: ",(char*)&a,1));
_delay_ms(10000);
*/
//wyslijTekst(strcat("Odebrano: ",czytajTekst()));
char* tt=czytajTekst();
//wyslijTekst(tt);
_delay_ms(10000);
int wynik=0;
if(porownaj("test")==0)
{
wyslijTekst("Wyslalest test jest OK!");
wynik=1;
}
if (porownaj("status")==0)
{
wyslijTekst("System dziala poprawnie, DZIEKUJE!!!");
wynik=1;
}
if(porownaj("pomoc")==0)
{
wynik=1;
wyslijTekst("To jest pomoc do systemu. Polecenia, ktore rozumiem to: ");
//_delay_ms(10000);
wyslijTekst(" - test - testowe polecenie");
//_delay_ms(10000);
wyslijTekst(" - status - wyswietlam status systemu");
//_delay_ms(10000);
wyslijTekst(" - pomoc - wyswietlam ta pomoc");
wyslijTekst(" - diody zgas - gasi diody");
wyslijTekst(" - diody zapal - zapala diody");
wyslijTekst(" - diody zapal n - zapala diode n");
wyslijTekst(" - diody zgas n - gasi diode n");
//_delay_ms(10000);
}
if(porownaj("diody zapal 0")==0)
{
zapal(0);
wynik=1;
}
if(porownaj("diody zgas 0")==0)
{
zgas(0);
wynik=1;
}
if(porownaj("diody zapal 1")==0)
{
zapal(1);
wynik=1;
}
if(porownaj("diody zgas 1")==0)
{
zgas(1);
wynik=1;
}
if(porownaj("diody zapal 2")==0)
{
zapal(2);
wynik=1;
}
if(porownaj("diody zgas 2")==0)
{
zgas(2);
wynik=1;
}
if(porownaj("diody zgas")==0)
{
kasuj();
wynik=1;
}
if(porownaj("diody zapal")==0)
{
zapalWszystkie();
wynik=1;
}
if(wynik==0)
{
wyslijTekst(strcat("Przepraszam, ale nie rozumiem polecenia: ",tt));
}
}
}
jak widac w oknie terminala - program po resecie nadaje dziwnie. Nie rozumiem tego błędu.