|  |   
	
		|  
 | 
	  			
	  				|  Elektronika.lt portalo forumasJū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 10 31, 02:23. Visos datos yra GMT + 2 valandos.
 |  |  |  
	
		| 
	|  | Forumas » Mikrovaldikliai » Help del 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
 
 |  |  |  
	|  |  
	|  |  
	|  | Help del UART |  
  | 
	| 
	
		|  Parašytas: 2006 03 07, 18:05 |     |  |  
	| 
	
		|  | 
			
				| 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.....
 |  |  
		|  |  |  |  
	|  |  
	
	|    |  |  
	|  |  | 
				
					|  | 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
 |  
	|  | VAT calculator VAT number check,
	    	What is VAT,
	    	How much is VAT
 |  
	|  | 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
 |    |   
 
 
 |  |