Merhaba Arkadaşlar
Mikroc de seriportdan hexedecimal göndermek istiyorum mesela ccs pic de printf("%LX", read_adc()); şeklinde gönderebiliyorum bu şekilde mikroc de gönderme durumu varmı dır veya bunun başka bir yolu var mı? yardımcı olacak arkadaşlara şimdiden teşekkür ederim...
Tabiki gönderebilirsiniz. Yapmanız gereken şey sadece usart_write('x'); demeniz.
sayın maytere birşey sormak istiyorum,
ben seri porttan komple string çekemiyorum. mesela sadece tek karakter olarak;
char uart_rd;
if(uart_data_ready())
{
uart_rd = uart1_read();
uart1_write(uart_rd);
glcd_write_char(uart_rd,0,7,1);
}
gibisinden çalışıyo. ama yalnız bir karakter basıyor.
char msg[22]; gibi bir değişkene stringi direk alanbilen bir kod var mıdır? mesela ccs c de getc diye bi komut vardı yanlış hatırlamıyosam döngü kurmadan tek komutla aldırıyordu. ve bunu EUSART interrupt la yazılımı meşgul etmeden yapabilir miyim acaba?
mikroC Pro 'da var öyle bir komut. Ama eski MikroC'de yok.
Help'de şöyle göstermiş:
UART1_Init(4800); // initialize UART1 module
Delay_ms(100);
while (1) {
if (UART1_Data_Ready() == 1) { // if data is received
UART1_Read_Text(output, "OK", 10); // reads text until 'OK' is found
UART1_Write_Text(output); // sends back text
}
}
maytere mikroc pro kulanıyorum bende. verdiğiniz help örneğini hemen denedim devre yanımda güzel çalıştı.
UART1_Read_Text(msg, "OK", 10);
UART1_Write_Text(msg);
glcd_write_text(msg,0,7,1);
test ok :)
teşekkür ediyorum. peki bunu interrupt tan dogru nasıl yapabilirim?
eusart kesmesinin bayrak adını falan bilemiyorum kodda. kısa bi kod blogu var mı?
void interrupt()
{
bayrak sıfırlama?
}
void main()
{
kesmeyi tanımlama filan? gbi
}
Hangi işlemciyi kullanıyorsanız onun datasheetine bakmalısınız bu iş için.