nana Posted April 8, 2009 Share Posted April 8, 2009 Am problema urmatoare am interfatat un MCU cu ajutorul unui cip de conversie hardware din semnal USART in USB care imi face un VCP (virtual com port) insa problema este urmatoarea cipurile interactioneaza bine intre ele dar apare urmatoarea chestie pot sa trimit stringuri, caractere insa nu pot nici cum sa trimit valori INT pe Usart ele imi sunt interpretate ca niste caractere ciudate ... am folosit codvision am sa pun codu mai jos al functiei de trimitere Deci cand apas 2 imi apare U in terminal la receptie insa cand apas 1 imi pare un caracter ambigu :(Pls help am de trimis niste date numerice neaparat pe portu USB!!interrupt [uSART_RXC] void usart_rx_isr(void){int g=1;char status;int data; status=UCSRA;data=UDR;if ((status & (FRAMING_ERROR | PARITY_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; }; }; if(data=='1') { UDR=g; printf("%s",g);} //citestepixeli(); else if (data=='2') UDR='U'; } Link to comment Share on other sites More sharing options...
vsurducan Posted April 10, 2009 Share Posted April 10, 2009 Daca folosesti cipuri de tip FTD232 sau FT232RL merge perfect ca VCP, problema e altundeva.Utilizeaza un Realterm pentru citirea caracterelor.http://pici.3x.ro Am problema urmatoare am interfatat un MCU cu ajutorul unui cip de conversie hardware din semnal USART in USB care imi face un VCP (virtual com port) insa problema este urmatoarea cipurile interactioneaza bine intre ele dar apare urmatoarea chestie pot sa trimit stringuri, caractere insa nu pot nici cum sa trimit valori INT pe Usart ele imi sunt interpretate ca niste caractere ciudate ... am folosit codvision am sa pun codu mai jos al functiei de trimitere Deci cand apas 2 imi apare U in terminal la receptie insa cand apas 1 imi pare un caracter ambigu :(Pls help am de trimis niste date numerice neaparat pe portu USB!!interrupt [uSART_RXC] void usart_rx_isr(void){int g=1;char status;int data; status=UCSRA;data=UDR;if ((status & (FRAMING_ERROR | PARITY_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; }; }; if(data=='1') { UDR=g; printf("%s",g);} //citestepixeli(); else if (data=='2') UDR='U'; } Link to comment Share on other sites More sharing options...
bogdan_ Posted April 12, 2009 Share Posted April 12, 2009 salut,tu ai vrea sa trimiti de exemplu pe x = 123 si sa apara pe ecran '123' ?daca e asa, trebuie sa folosesti o functie care iti transforma numarul x in stringul '123'. Nu cunosc code vision asa de bine, dar stiu ca are asa ceva, vezi in help. Link to comment Share on other sites More sharing options...
nana Posted April 21, 2009 Author Share Posted April 21, 2009 conversile din int in string char se fac automat de obicei in C, deci e destul sa pun "%s", 123 si se receptioneaza ca string insa nu functioneaza.. am incercat toate variantele Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.