Elektronika.lt
 2025 m. liepos 12 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

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 07 12, 13:23. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » Susiduriau su dilema at90s2313 UART
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 11
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 Susiduriau su dilema at90s2313 UART
PranešimasParašytas: 2006 02 22, 01:33 Pranešti apie taisyklių pažeidimą Atsakyti su citata
oxegen
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Noriu susikonstruoti irenginuka kad per komporto prievada... surinkus tam tikras komandas pvz. kaip "AT" open1" ir panasius zodziu ivygdytu tam tikrus veiksmus ijungtu ar isjungtu..... bet iskyla klasymas kaip tai padaryti nes pradejus rasyt jam komanda jis priema tik pirma simboli o kiti zodzio simboliai jau priema kaip nauja komanda o ne kaip tos pacios komandos sekanti simboli....
tat nesugalvoju kaip tai padaryt ar imanoma naudojant masyvus ar koki kita buda patarkyt....?
 Susiduriau su dilema at90s2313 UART
PranešimasParašytas: 2006 02 22, 13:47 Pranešti apie taisyklių pažeidimą Atsakyti su citata
siena
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą ICQ numeris
naudok pabaigos simboli ..
kad ir \n\r (0Ah 0Dh)
ir tik gaves pabaigos simboli analizuoji vis gauta sakini ..
+ butinai reikai numatyti "time out" tarp simboliu bei maksimalu sakinio ilgi ..
 Susiduriau su dilema at90s2313 UART
PranešimasParašytas: 2006 02 22, 14:04 Pranešti apie taisyklių pažeidimą Atsakyti su citata
raysoft
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje MSN Messenger ICQ numeris
siena rašo:
naudok pabaigos simboli ..
kad ir \n\r (0Ah 0Dh)
ir tik gaves pabaigos simboli analizuoji vis gauta sakini ..
+ butinai reikai numatyti "time out" tarp simboliu bei maksimalu sakinio ilgi ..


Mane taip pat tai domina, gal koki skaitala turi kaip tai realizuojama ar example?
dėkui.
 Susiduriau su dilema at90s2313 UART
PranešimasParašytas: 2006 02 22, 14:13 Pranešti apie taisyklių pažeidimą Atsakyti su citata
siena
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą ICQ numeris
na cia jokio skaitalo nereikai ir vargu ar rascaiu .. cia tiesiog paprasciausiai rysio protokolo dalykas ..
duomenys turi savo pradizia ir pabaiga .. todel turi fiksuoti .. o kaip jie baigiasi ar prasideda tai priklauso tik nuoto kaip tu realizuotis ..
siaip jeigu rysis vykstas ASCII simboliais tai siuliciau susirasti pilda ASCII lentele ir pasiziureti kokie ten simboliai yra .. siaip iki 20h simbolio yra spec simboliai visokie ..
 Susiduriau su dilema at90s2313 UART
PranešimasParašytas: 2006 03 07, 00:39 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Sarunas
Dažnas dalyvis
Dažnas dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką MSN Messenger
http://www.lookuptables.com/
cia va yra maza ASCII lentele
 Susiduriau su dilema at90s2313 UART
PranešimasParašytas: 2006 03 07, 00:45 Pranešti apie taisyklių pažeidimą Atsakyti su citata
valdaz
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką
cia ant c51:

;paprograme pertraukties apdirbimo nuo SERIAL PORT
SERREC:
JNB RI,$ ;laukiam priemimo pabaigos
CLR RI
CPL LDRXD ;mirksim baito priemimo led'u
MOV A,SBUF ;skaitom primta baita
CJNE A,#'$',SR1 ;perejnam jeigu ne paketo pradzia
MOV BYTESR,#00h ;jeigu paketo pradzia, nunulinam gautu simboliu kieki
RETI
SR1:
CJNE A,#0Dh,SR2 ;perejimas jeigu ne paketo pabaiga
SETB FLAGPRC ;leidziame apdoroti komanda
RETI
SR2:
CLR RS0
CLR RS1
MOV A,#BUFRXD ;isskaiciuojam ..
ADD A,BYTESR ;..buferio lastele..
MOV R0,A
MOV @R0,SBUF ;.. ir irasom i ja priimta baita
INC BYTESR ;didinam priimtu baitu skaitikli
RETI
 Nezinau ar nauja teme rasyt ar ir prie sitos pratesima...
PranešimasParašytas: 2006 03 07, 00:51 Pranešti apie taisyklių pažeidimą Atsakyti su citata
oxegen
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Tai va kol buvau uzsiemes kitais reikalais pasibaige ir ta 30dienu IAR programaij.... Jei kas turit normaliai veikiancia, dar karta labai prasau atsiuskite man
oxegensytes@gmal.com

Instaliavausi ir "nusipirkau" licenzija CodeVisionAVR programaij... bet idejus koda pagal elektronikoj duota pvz.: http://elektronika.lt/schematic/theme/67/593/

taij neveikia meta klaidas. Jeigu nusciacius ir leidus minimaliai padaryti savo koda siai programaij toki :

#include <90s2313.h>

#define RXB8 1
#define TXB8 0
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7

#define FRAMING_ERROR (1<<FE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)

// UART Receiver buffer
#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif

// This flag is set on UART Receiver buffer overflow
bit rx_buffer_overflow;

// UART Receiver interrupt service routine
interrupt [UART_RXC] void uart_rx_isr(void)
{
char status,data;
status=USR;
data=UDR;
if ((status & (FRAMING_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the UART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif

// UART Transmitter buffer
#define TX_BUFFER_SIZE 8
char tx_buffer[TX_BUFFER_SIZE];

#if TX_BUFFER_SIZE<256
unsigned char tx_wr_index,tx_rd_index,tx_counter;
#else
unsigned int tx_wr_index,tx_rd_index,tx_counter;
#endif

// UART Transmitter interrupt service routine
interrupt [UART_TXC] void uart_tx_isr(void)
{
if (tx_counter)
{
--tx_counter;
UDR=tx_buffer[tx_rd_index];
if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the UART Transmitter buffer
#define _ALTERNATE_PUTCHAR_
#pragma used+
void putchar(char c)
{
while (tx_counter == TX_BUFFER_SIZE);
#asm("cli")
if (tx_counter || ((USR & DATA_REGISTER_EMPTY)==0))
{
tx_buffer[tx_wr_index]=c;
if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
++tx_counter;
}
else
UDR=c;
#asm("sei")
}
#pragma used-
#endif

// Standard Input/Output functions
#include <stdio.h>

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port D initialization
// Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=In Func0=In
// State6=0 State5=0 State4=0 State3=0 State2=0 State1=T State0=T
PORTD=0x00;
DDRD=0x7C;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1 output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
OCR1H=0x00;
OCR1L=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// UART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// UART Receiver: On
// UART Transmitter: On
// UART Baud rate: 9600
UCR=0xD8;
UBRR=0x33;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;

// Global enable interrupts
#asm("sei")

while (1)
{
// Place your code here

};
}



taij nelabai veikia padavus koda i " // Place your code here" vieta....




Tat kuris tas tikras kintamasis sioje programoje yra duomenu mainams per UART <<<putchar(c)>>

Jei imetu kazkoki taij duomenys i C man neismeta per terminala..... Kaip koda susitvarkyt kad bent pradziai pagal elektronikos puslapi atliktu tokius veiksmus su duomenu perdavimu per terminala.....


:/ Jei ko nors nesuprasyti teij per daug nesikarsciuokite nes gan jau velu Sad ir einu ZZzzz ryt pats perskaitysiu ka parasiau.... Very Happy
Pradėti naują temą  Atsakyti į pranešimą
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

„Mokslo sriuba“

www.matuok.lt - Interneto spartos matavimo sistema

Programuotojas Tautvydas – interneto svetainių-sistemų kūrimas

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

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
VAT calculator
VAT number check, What is VAT, How much is VAT
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps 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
Football Training Kit
Football Training Equipment, Football Skills, Football Training
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Ets2 mods, Ats mods, Beamng drive mods
allmods.net
„MokslasPlius“ – mokslui skirtų svetainių portalas
www.mokslasplius.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
LTV.LT – lietuviškų tinklalapių vitrina
www.ltv.lt/technologijos/
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama