Witam mam taki problem.
Oto kod ze strony http://ds5.agh.edu.pl/~czaro/naukowo/avr_rs232.htm
Oraz taką listę błędów:
Dodatkowo jest jeszcze kila ostrzeżeń.
Programik przepisałem z pdf-a którego można pobrać ze strony którą podałem wyżej ale nie wiem dlaczego aż tak dużo błędów się wysypało. Wiem że nie są zadeklarowane niektóre zmienne ale w tym pdf-ie jest opis całego tego programu i niema ani słowa na temat aby używać np innych bibliotek.
Czy może wina leży w tym że mam inne biblioteki i w nich niema deklaracji tych zmiennych.
Oto kod ze strony http://ds5.agh.edu.pl/~czaro/naukowo/avr_rs232.htm
#include <avr/io.h>
//I NICJALIZACJA uart-U
UCSRS=(1<<URSEL) | (1<<UPM1) | (1<<UCSZ1) | (1<<UCSZ0);
//URSEL=1 korzystanie z rejestru UCSRC
//UPM1=1 sprawdzenie parzystości even parity
//UCSZ1=1 UCSZ0=1 8bitów danych
UBRRL=51; //prędkość transmisji 9600bps
UCSRB=(1<<RXEN) | (1<<TXEN); //uaktywnienie odbioru i nadawania
//nadawanie pojedynczego znaku
void nadajznak (char dana1)
{
while(!(UCSRA&(1<<UDRE))); //czekaj na wysłanie poprzedniej danej
UDR=dana1;
}
//nadawanie całego zapisu
void nadajstring (char *dana)
{
int dlugosc; //dlugosc napisu
int k=0; //zmienna licznikowa
dlugosc=strlen(dana); //pobranie dlugości napisu
for(k=0;k<dlugosc;k++)
{
nadaj(dana[k]); //wyslij pojedynczy znak
}
}
//ODBIOR POJ RAMKI
//odbior znaku
//funkcja zwraca wartosc w poztaci zmiennej uint8_t
uint8_t odbierz (void)
{
while(!(UCSRA&(1<<RXC))); //dopuki bufor nie bedzieczysty
return UDR; //zwroc wart funkcji
}
//ustawienie portu
DDRB=0xFF;
PORTB=0xFF;
uint8_t odebrano;
while(1)
{
odebrano=odbierz(); //sprawdzanie caly czas bufora
if(odebrano==0x31) {PORTB=0xFF; PORTB&=~_BV(1); nadajznak(odebrano);}
if(odebrano==0x32) {PORTB=0xFF; PORTB&=~_BV(2); nadajznak(odebrano);}
}
Oraz taką listę błędów:
../rs232.c:4: error: 'URSEL' undeclared here (not in a function)
../rs232.c:4: error: 'UPM1' undeclared here (not in a function)
../rs232.c:4: error: 'UCSZ1' undeclared here (not in a function)
../rs232.c:4: error: 'UCSZ0' undeclared here (not in a function)
../rs232.c:9: error: 'RXEN' undeclared here (not in a function)
../rs232.c:9: error: 'TXEN' undeclared here (not in a function)
../rs232.c: In function 'nadajznak':
../rs232.c:14: error: 'UCSRA' undeclared (first use in this function)
../rs232.c:14: error: (Each undeclared identifier is reported only once
../rs232.c:14: error: for each function it appears in.)
../rs232.c:14: error: 'UDRE' undeclared (first use in this function)
../rs232.c:15: error: 'UDR' undeclared (first use in this function)
../rs232.c:37: error: 'UCSRA' undeclared (first use in this function)
../rs232.c:37: error: 'RXC' undeclared (first use in this function)
../rs232.c:38: error: 'UDR' undeclared (first use in this function)
../rs232.c:42: error: expected identifier or '(' before 'volatile'
../rs232.c:42: error: expected ')' before '(' token
../rs232.c:43: error: expected identifier or '(' before 'volatile'
../rs232.c:43: error: expected ')' before '(' token
../rs232.c:47: error: expected identifier or '(' before 'while'
Dodatkowo jest jeszcze kila ostrzeżeń.
Programik przepisałem z pdf-a którego można pobrać ze strony którą podałem wyżej ale nie wiem dlaczego aż tak dużo błędów się wysypało. Wiem że nie są zadeklarowane niektóre zmienne ale w tym pdf-ie jest opis całego tego programu i niema ani słowa na temat aby używać np innych bibliotek.
Czy może wina leży w tym że mam inne biblioteki i w nich niema deklaracji tych zmiennych.
