 |

|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 12 24, 01:32. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » AVR USART
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
Puslapis 2 iš 2 Pereiti prie Atgal 1, 2 |
|
 |
 |
 |
AVR USART |
Parašytas: 2010 04 19, 21:52 |
|
|
|
|
| centronic rašo: |
pasiunti tokią eilutę (jei imanoma) 'mano batai buvo du\nvienas dingo nerandu\n'
| Kodas: |
char usart_data_1[16];
char usart_data_2[16];
//*************************************************
void usart_read(void){
unsigned char i;
i = 0;
while(usart_data_1[i] != '\n'){ //"mano batai buvo du\n"
if(bitas(UCSRA,RXC)){
usart_data_1[i] = UDR;
i++;
}
}
i = 0;
while(usart_data_2[i] != '\n'){//"vienas dingo nerandu\n"
if(bitas(UCSRA,RXC)){
usart_data_2[i] = UDR;
i++;
}
}
}
|
[/url] |
Nebeikelia nieko i masyvus, kad ir kaip besiusciau, va, gal cia kas negerai nzn...
| Kodas: |
char usart_data_1[8];
char usart_data_2[8];
unsigned char usart_read(void){
unsigned char i;
TCNT0 = 0;
sbi(TIFR,TOV0);
while(1){
if(bitas(TIFR,TOV0)){ //jei praejus 16ms negauna nauju duomenu
return 0; //reiskia duomenys atsiusti
}
i = 0;
while(usart_data_1[i] != '\n'){ //batai\n"
if(bitas(UCSRA,RXC)){
usart_data_1[i] = UDR;
i++;
}
}
i = 0;
while(usart_data_2[i] != '\n'){//mano\n"
if(bitas(UCSRA,RXC)){
usart_data_2[i] = UDR;
i++;
}
}
if(i == 8) return 1; //klaida persipilde usart_data mas.
}
}
|
|
|
|
|
|
|
 |
 |
AVR USART |
Parašytas: 2010 04 20, 07:03 |
|
|
|
|
| kas beateitu viskas yra dedama i viena masyva. Toliau analizes metu yra tikrinamas komandos pradzios identifikatorius (header) ir pagal tai nusprendziama kur pradzia... |
|
_________________ Nieko taip lengvai nedaliname, kaip patarimus... |
|
|
|
 |
AVR USART |
Parašytas: 2010 04 20, 21:19 |
|
|
|
|
turbut sita problema eis isspresti tik tokiu budu: uzduot cikla kad lauktu kokio nors simbolio, ir tik ji priemus pradedu kelti duomenis i masyva. Nes man is esmes pirma eilute nerupi, svarbi tik antra eilute, ir tai nevisa, o tik tam tikra dalis. Taigi va ka geriausio man pavyko sukurti, bet, deja neveikia.
char usart_data_1[8];
unsigned char usart_read(void){
unsigned char i;
while(1){
if(bitas(UCSRA,RXC)){
usart_data_1[0] = UDR; }
i = 0;
if(usart_data_1[0] == 'x'){ //jei sutinka 'x', pradeda irasinet i masyva
if(bitas(UCSRA,RXC)){
usart_data_1[i] = UDR;
i++;
}
}
return 0;
}
}
Padekit ;/ |
|
|
|
|
|
 |
 |
AVR USART |
Parašytas: 2010 04 20, 21:21 |
|
|
|
|
taip tikrinu ar kas nors irasyta i masyva.
int main(void){
USART_Init(25);
unsigned char i;
DDRD = 0xFF;
TCCR0 = 0x04;
while(1){
if(bitas(UCSRA,RXC)){
i = usart_read();
USart_Send_String("--ON--");
_delay_ms(100);
USart_Send_String(usart_data_1);
_delay_ms(100);
}
}
for(i=0; i<8; i++){
usart_data_1[i] = '0';
}
} |
|
|
|
|
|
 |
AVR USART |
Parašytas: 2010 04 20, 21:30 |
|
|
|
|
| Bent supranti ka pats darai? Nes cia cissika nesamone, o ne tikrinimas... |
|
|
|
|
|
 |
AVR USART |
Parašytas: 2010 04 20, 22:11 |
|
|
|
|
| Suprantu ta kad jeigu masyve atsiras duomenu tai juos turetu nusiust atgal i terminala, ir pagal tai nuspresiu irasinejama kas nors i ji ar ne : ) |
|
|
|
|
|
 |
 |
AVR USART |
Parašytas: 2010 04 21, 14:22 |
|
|
|
|
| HIdef rašo: |
turbut sita problema eis isspresti tik tokiu budu: uzduot cikla kad lauktu kokio nors simbolio, ir tik ji priemus pradedu kelti duomenis i masyva. Nes man is esmes pirma eilute nerupi, svarbi tik antra eilute, ir tai nevisa, o tik tam tikra dalis. Taigi va ka geriausio man pavyko sukurti, bet, deja neveikia.
Padekit ;/ |
mintis tai lyg ir gera, siaip pakeites truputi koda kur idetas buvo auksciau kito forumo dalyvio gavau kazka panasaus
mintis tokia:
nusiskaitai tik viena simboli
jei jis =='reikiamas simbolis'
nuskaitau eilute ir jei is nuskaitancios funkcijos gaunu 1, tada ieskau toje eiluteje pirmo simbolio, jei jis lygus man reikalingam identifikatoriui, pasiimu viska kas yra uz jo, (pvz skaiciai po = zenklo)
I masyva priiminedamas imu simbolius iki ale stop'o, mano atveju * Issiunciamos eilutes pvz.: x=58000*
P.S. elitue reikia paduoti "vienu ypu", o ne ivedineti po simboliuka |
|
|
|
|
|
 |
 |
AVR USART |
Parašytas: 2010 06 23, 20:05 |
|
|
|
|
Sveiki, iskilo noras ismokti dirbti su USART taipats su noru atsirado is problema. Rasau internete tokia trumpa programa:
| Kodas: |
#include <stdio.h>
#include <avr/io.h>
void main(void)
{
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x17;
printf("Hello World!");
}
|
Ant CodeVision veikia viskas gerai, ant AVR Studio 4 neveikia gal zinot kas gali buti blogai ? |
|
|
|
|
|
|
 |
Google paieška forume |
|
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
Must have farming mods
Farming simulator modhub,
Best farming simulator mods |
|

|
 |