C# Arayüzüyle RS232 Modülü Kullanarak Seri Haberleşme Uygulaması

Başlatan edemir29, 15 Mayıs 2016, 20:10:00

edemir29

Ben C# Üzerinde Geliştirilen Arayüzle RS232 Modülü Kullanarak Seri Haberleşme Uygulaması Yapmaya Uğraşıyorum . Xc8  konusunda acemiyim, öğrenmeye çalışıyorum. İlk olarak şöyle bir yol izledim . Xc8 konusunda bilgim fazla olmadığından Fırat DEVECİ'nin yazmış olduğu Hitech Programlama kitabındaki uygulamayı xc8'e uyarlamaya çalıştım .(Uygulama :Seri porttan gelen bilgiyi LCD'ye yazdırma)  Daha sonra xc8 kütüphanelerini ekledim(Uart  ,Delay , LCD) ve gerekli değişiklikleri yaptım .(Bu adımı yapıp c# da arayüz yapmaya çalışıp ikisini birleştirecektim.adım adım gidim dedim ama olmadı :)) Ortaya böyle bir şey çıktı .


#include <xc.h>
#include <stdio.h> // printf için gerekli C standart giri? ç?k?? kütüphanesi
#include "delay.h"
#include "lcd.h"
#include "uart.h"

// CONFIG
#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config CP = OFF         // FLASH Program Memory Code Protection bits (Code protection off)
#pragma config BOREN = OFF      // Brown-out Reset Enable bit (BOR disabled)
#pragma config LVP = OFF        // Low Voltage In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming)
#pragma config CPD = OFF        // Data EE Memory Code Protection (Code Protection off)
#pragma config WRT = OFF        // FLASH Program Memory Write Enable (Unprotected program memory may not be written to by EECON control)

#define _XTAL_FREQ 20000000

void main(void){  // Ana fonksiyon alan? 

char i,j;
TRISB=0x00;  // LCD için ç?k??  
TRISC=0xF0;  // USART pinleri giri? olarak kabul ediliyor  
PORTB=0x00; 

lcd_init();   // LCD ilk ayarlar? yap?l?yor  
UART_Init();  // USART ilk ayarlar? yap?l?yor 

lcd_yaz(" LCD / USART ");
lcd_gotoxy(2,1);
lcd_yaz("   LCD / USART");
DelayMs(250);
lcd_clear(); 
lcd_komut(ImlecYanSon); // Imlec yan?p sönecek 
printf("\n\rLCD ve USART Denemesi");
printf("\n\rIstenilen Yazi LCD'de Gozukur!\n\r\n\r");
printf("1x16:"); 
for(;;)
{
      j++;
      i=UART_Read();// Karekter al?n?yor
      veri_yolla(i); // LCD'ye bas?l?yor
      UART_Write(i);  // Virtual terminal'e bas?l?yor
      if(j==16)  // ?lk sat?ra geçiliyor
        { printf("\n\r2x16:");
        lcd_gotoxy(2,1);
        } 
      else if(j==32) // 2. sat?ra geçiliyor 
          {    veri_yolla(i);  
               lcd_clear();    
               printf("\n\r1x16:");    
               j=0;   
          }
}
}


Şu Hataları Aldım:

uart.h:57: warning: (346) declaration of "i" hides outer declaration
rs232.c:27: error: (187) too few function arguments
make[2]: *** [build/default/production/rs232.p1] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
(908) exit status = 1
nbproject/Makefile-default.mk:100: recipe for target 'build/default/production/rs232.p1' failed
make[2]: Leaving directory 'C:/Users/MPLABXProjects/rs232.X'
nbproject/Makefile-default.mk:84: recipe for target '.build-conf' failed
make[1]: Leaving directory 'C:/Users/MPLABXProjects/rs232.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed

BUILD FAILED (exit value 2, total time: 455ms)

Şimdi direk bir şeyler yazamadığım için hitechten xc8'e değiştirip yapmaya çalıştım. Öncellikle böyle yapmam hatalı mı olmuş?
Nasıl bir yol izlemeliyim ?
Hatalar neyden kaynaklı ?
Bu konuda önerebileceğiniz döküman vs. bir şey var mı ?

Yardımlarınızı bekliyorum .