Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

keil'de if hata veriyor

Başlatan armsistem, 11 Aralık 2011, 00:15:47

armsistem

Arkadaşlar merhaba , Aşağıdaki kod uart'tan okuma ve gönderme yapıyor ,okuduğum veriyi if'le sorgulayıp programı yönlendirmek istiyorum ama sürekli hata alıyorum mesala aşağıda if'ten hata alıyorum ,veri değişkeni 'unsigned char'
if (veri=="deneme");

#include <LPC17xx.h>
#include "lcd.h"
#include "delay.h"
#include "uart.h"

#define Baudrate  9600  //  baudrate 9.6 Kbps
#define PortNum   1     // usart 1 = com1

uint8_t veri;

/********************************************************************************************/
int main (void)
{

    SystemInit ();
	SysTick_Config(12000000/1000);
	
	LPC_GPIO2->FIODIR = 0xFFFFFFFF;  // GPIO'ların hepsi çıkış oluyor
 
   	(void)UARTInit( PortNum, Baudrate);

	lcd_init();
	lcd_yaz("  RS232 Testi");
	lcd_gotoxy(2,1);
	lcd_yaz("www.ExpKits.com");
	DelayMs(1000);
	
	UARTSend( PortNum, (uint8_t *)"\r\n33DS\r\n", 4);
	
	lcd_clear();
 	lcd_yaz("RS232 Com1 Text:");
  	lcd_gotoxy(2,1);
	lcd_komut(15);

    while(1){

	while(!Usart_Oku(&veri,PortNum));
  	lcd_gotoxy(2,1);
	lcd_yaz("                ");
  	lcd_gotoxy(2,1);
	veri_yolla(veri);
	while(Usart_Oku(&veri,PortNum))
	veri_yolla(veri);
 
	}
}
/********************************************************************************************/

yamak

#1
Hata almanın nedeni uint8_t tipinde bi değişkende ancak 8 bitlik bir veri saklayabilirsin."deneme" 6x8=48 bit yani 6 byte yapar. Böyle bişey yapmak istiyorsan dizi ya da pointer kullanmalısın.

mozkan87

Alıntı yapılan: armsistem - 11 Aralık 2011, 00:15:47
Arkadaşlar merhaba , Aşağıdaki kod uart'tan okuma ve gönderme yapıyor ,okuduğum veriyi if'le sorgulayıp programı yönlendirmek istiyorum ama sürekli hata alıyorum mesala aşağıda if'ten hata alıyorum ,veri değişkeni 'unsigned char'
if (veri=="deneme");


Hocam burada siz char ile bir stringi karşılaştırmaya çalışıyorsunuz o nedenle hata veriyordur.

armsistem

Dostum yanıt için teşekkürler peki uarttan gelen veriyi nasıl sorgulayabilirim.

mozkan87

Ya gelen veriyi bir dizide tutup oradan daha sonra tek tek diz elemanlarını sorgulayacaksınız, ya da her gelen veriyi anlık olarak iç içe if döngüsü içinde sorgulayacaksınız. Aşağıdaki gibi bir yapı basit uygulamlar için yeterli olacaktır. İç içe olan if döngüleri arttırılabilir.
while(Usart_Oku(&veri,PortNum))
if (veri=="a"){
    while(Usart_Oku(&veri,PortNum))
    if(veri=="b"){
        
    }

}

armsistem

iş hazira dönmeden uğraşmaya başlayayim