 |

|
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 05 21, 19:52. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » ATtiny2313 problemos su USART'u
|
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
|
|
|
 |
 |
 |
ATtiny2313 problemos su USART'u |
Parašytas: 2008 03 21, 21:35 |
|
|
|
Programuoju su IAR Embedded workbench programa. Pasiskaiciau Attiny 2313 manuala apie USART'a palyginau su elektronikos sajte esanciu pavyzdziu "Pirmi zingsniai AVR UART ar kaip ten ", nu ir pradejau programint.
Esme ko man reikia: I mikrovaldikli attiny ateina signalas sakykim i PB0 koja, tada prasisuka kodas ir per PD0 iseina kitas signalas (uzsidega diodas-patikrinimui cia rodo kad yra signalas), bet man dabar reikia, kad atejus signalui i PB0 koja butu isiunciamas koks nors ASCII simbolis per PD0, tam nusprendziau naudoti USARTA.
Problema iskilo tada kai is attiny manualo paemiau pavyzdini koda ir pradejau kompiliuot, IAR'as pradejo keiktis ir sako neapazystu tavo UARTO komandu. Kabinasi butent prie UARTO inicializavimo UBRRH ,UBRRHL, UCSRB ,UCSRB , USBS ir kt. likusiu komandu.
Nzn ka daryt toliau, as itariu gal kokios bibliotekos reikia, bet nzn kur ir kaip ja surast
Gal kas galit patart ?
Mano kodo pavizdys:
#include "io2313.h"
void USART_Transmit( unsigned char data ); //pagal manuala
void USART_Init( unsigned int baud ); //pagal manuala
/*--cia kintamieji aprasyti-----*/
....
// -- UARTO inicializavimas pagal manuala---
/* Set baud rate */
UBRRH = (unsigned char)(baud>> ;
UBRRL = (unsigned char)baud;
// neasku ka su tais UBRRH ir UBRRL daryt.
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<USBS)|(3<<UCSZ0);
while (1) // cia amzinas ciklas
{
/*sicia sukasi kazkoks kodas*/
// prasisukus salygai per USART pagalba turi isiusti siboli
UDR=kazkas ;
} |
|
|
|
|
 |
 |
ATtiny2313 problemos su USART'u |
Parašytas: 2010 01 21, 14:59 |
|
|
|
Man analogishka problema. tik as dirbu su AVR Studio ir bandau su CodeVisionAVR, nesigauna nei ten nei cia, ir nerandu paprasciausio PVZ, kad butu atramos taskas.
Jei tau pavyko ar suzinojei kaip padaryti kad veiktu pasidalink prasau.
Aciu! |
|
|
|
|
 |
ATtiny2313 problemos su USART'u |
Parašytas: 2010 01 21, 16:28 |
|
|
|
jei koliojasi-vadinasi neranda header faile(*.h) tokiu abreviaturu...
ner cia ko daug gudraut:
void Uart_ras(void)
{
UDR = rys_out;
set_TXC(UCSRA);
yy:if(rd_TXC(UCSRA)==0) goto yy;//laukiama kol issius simboli
}
Priemimas ir rasymas i masyva. priemimas pagal pertraukima:
__interrupt void UART_RX(void)
{
//*nuskaitytos informacijos skaitymas ir grazinimas*/
/*rys_out=*/ skait_uart_buf[tarp4] = UDR; /*Uart_ras();*/
tarp4++; if (tarp4 >= 20)
tarp4 = 0;
} |
|
_________________ Nieko taip lengvai nedaliname, kaip patarimus... |
|
|
|
 |
 |
ATtiny2313 problemos su USART'u |
Parašytas: 2010 01 21, 17:26 |
|
|
|
Tai jei rasyti programa AVR studio kaip ten atrodytu, nes standartinis pavyzdis is atmel datasheeto neeina
as nadoju WinAVR C kompiliatoriu, bet jis nenori to USART pripazinti
#include <avr/io.h>
void USART_Init( unsigned int baud )
{
/* Set baud rate */
UBRRH = (unsigned char)(baud>> ;
UBRRL = (unsigned char)baud;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<USBS)|(3<<UCSZ0);
}
nebesuprantas kas tas UBRRH ir taip nepripazista toliau visu registru
gal reikai dar kazka includint? |
|
|
|
|
 |
 |
ATtiny2313 problemos su USART'u |
Parašytas: 2010 01 21, 23:35 |
|
|
|
atmel darasheet nera priristas prie kazkokio tai transliatoriaus, o aiskina principa(lyg tai)... Turi issiaiskinti kaip konkreciame transliatoriuje turi but aprasytas bito nustatymas i 0 ar i vieneta ir tikrinimas... tada pagal aprasyma turi tai padaryti, kad butu nustatyta f-ja. O siaip tai dauguma naudoja IAR ir neturi problemu. Paskutine versija5.3... Jau veikianti  |
|
_________________ Nieko taip lengvai nedaliname, kaip patarimus... |
|
|
|
 |
 |
ATtiny2313 problemos su USART'u |
Parašytas: 2010 01 21, 23:40 |
|
|
|
ax UBRRH tai uart bit rate register vyresnysis baitas... Su gale L-jaunesnysis... Uzsiusta reiksme nustato Uarto greiti, Irasomas dydis susijes su kvarco ar generatoriaus dazniu... Pries pradedant programuoti reiketu perziureti strukturas ir valdymo registrus uarto valdymui. Tiesiogiai bandant pritaikyti ir nezinanat kas ka reiskia gaunasi nekas... Na kartais gal gali ka pataikyt, bet... Reikia viska smulkiai aiskintis, kitaip neimanoma testuoti... |
|
_________________ Nieko taip lengvai nedaliname, kaip patarimus... |
|
|
|
 |
 |
Re: ATtiny2313 problemos su USART'u |
Parašytas: 2010 01 23, 10:45 |
|
|
|
tokios f-jos iar'e usart_transmit(), usart_init() nėra, nebent tu dar kokias bibliotekas naudoji.
Kodas: |
// IAR AVR 4MHz
#define ENABLE_BIT_DEFINITIONS
#include <ioavr.h>
#define bitas(PIN,BIT) (PIN &(1 << BIT))
/////////////////////////////////////////////////////////
char usart_read_char(){
char rxd;
while(!bitas(UCSRA,RXC));
rxd = UDR;
return rxd;
}
/////////////////////////////////////////////////////////
void usart_send_char(char txd){
while(1){
if(bitas(UCSRA,UDRE)){
UDR = txd;
break;
}
}
}
////////////////////////////////////////////////////////
void usart_init(void){
UBRRH = 0;
UBRRL = 12; //br 19200
UCSRB = 0x18;
UCSRC = 0x86;
}
////////////////////////////////////////////////////////
void main( void ){
DDRA = 0xFF;
usart_init();
usart_send_char('A');
while(1){
PORTA = usart_read_char();
}
} |
|
|
|
|
|
 |
 |
winavr cgg uart |
Parašytas: 2010 11 12, 21:30 |
|
|
|
Laba diena!
Pas mane problema su UART, negaliu isvesti paprasciausiai skaiciaus i Hyper terminala.
Attiny2313 4MHz
Max232
Kompiliatorius neismeta klaidu Avr Studio4.14 ir Code VisoAvr.
Is interneto prisirinkau pavyzdiu ir kazka parasiau pats.bet niekas nesigauna.
Is anksto dekoju aciu!
#include <avr/io.h>
#include <stdio.h>
#include <avr/interrupt.h>
void UART_init(void)
{
UCSRA=0x00;
UCSRB=(1<<TXEN)|(0<<TXCIE)|(0<<UDRIE);
UCSRC=0x06;
UBRRH=0;
UBRRL=0x19;
}
void UART_send(unsigned char data)
{
while(!(UCSRA & (1<<UDRE)));
UDR=data;
//return ;
}
int main (void)
{
UART_init();
while(1){
UART_send(0x35);
}
return 0;
} |
|
|
|
|
|
 |
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 |
 |
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 |
|

|
 |