Picproje Elektronik Sitesi

DERLEYİCİLER => Diğer Derleyiciler => KEIL => Konuyu başlatan: armsistem - 11 Aralık 2011, 00:15:47

Başlık: keil'de if hata veriyor
Gönderen: 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");


#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);

}
}
/********************************************************************************************/
Başlık: Ynt: keil'de if hata veriyor
Gönderen: yamak - 11 Aralık 2011, 00:19:20
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.
Başlık: Ynt: keil'de if hata veriyor
Gönderen: mozkan87 - 11 Aralık 2011, 00:21:17
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.
Başlık: Ynt: keil'de if hata veriyor
Gönderen: armsistem - 11 Aralık 2011, 00:31:10
Dostum yanıt için teşekkürler peki uarttan gelen veriyi nasıl sorgulayabilirim.
Başlık: Ynt: keil'de if hata veriyor
Gönderen: mozkan87 - 11 Aralık 2011, 00:41:57
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"){
       
    }

}
Başlık: Ynt: keil'de if hata veriyor
Gönderen: armsistem - 11 Aralık 2011, 10:43:25
iş hazira dönmeden uğraşmaya başlayayim