seri porttan (tx) data yollamak

Başlatan kudretuzuner, 06 Aralık 2010, 00:42:05

Ali_54

dönüştürücüm sanırım ftd232 işlemcili.
http://www.direnc.net/main/usb__rs232_cevirici__9_pin_erkek_-9881-0-575.html    dan almıştım. win 7 kullanıyorum.
Configure Virtual Serial Port Driver diye bi sanal port programı var bende. onunla comları sanal olarak bağlayabiliyordum. gerçek uygulamada sıkıntı oldu. aygıt yöneticide fiziksel coma (usbye) birşey bağlı iken görünüyor. dönüştürücüyü takmadan sanal comların üzerinde aramıştım o ayarları bulamamıştım. yani gerçek aygıtta bu ayarlar çıkıyo anladığım. dönüştürücüyü takıpta denemeliyim sanırım. bulur bulmaz deneyeceğim bugün. yanıtlarınız için teşekkür ederim  :)
1 harf öğretenin 4 gün kölesi olurum.

vitruvius

Alıntı yapılan: Ali_54 - 15 Haziran 2011, 11:58:07
dönüştürücüm sanırım ftd232 işlemcili.
http://www.direnc.net/main/usb__rs232_cevirici__9_pin_erkek_-9881-0-575.html    dan almıştım. win 7 kullanıyorum.
Configure Virtual Serial Port Driver diye bi sanal port programı var bende. onunla comları sanal olarak bağlayabiliyordum. gerçek uygulamada sıkıntı oldu. aygıt yöneticide fiziksel coma (usbye) birşey bağlı iken görünüyor. dönüştürücüyü takmadan sanal comların üzerinde aramıştım o ayarları bulamamıştım. yani gerçek aygıtta bu ayarlar çıkıyo anladığım. dönüştürücüyü takıpta denemeliyim sanırım. bulur bulmaz deneyeceğim bugün. yanıtlarınız için teşekkür ederim  :)

Genelleyebilir miyiz bilmiyorum ama FTDI ürünleri siyah ve biraz daha pahalı oluyor.. Ben böyle gözlemledim  :) Bendeki de öyle, elinizdeki de internetten baktığımda Prolific ürünü gibi duruyor. Aygıt yöneticisinden Sürücü-Sürücü Sağlayacı kısmından bakarsanız firmayı görürsünüz. Bunu soruyorum çünkü ben de win7/64 bit kullanıyorum. Prolific entegreli dönüştürücüler hem driver yüklerken sorun çıkartıyor, bazen yüklüyor bazen yüklemiyor. Düzgün yüklese bile veri alışverişi yapamıyorum. FTDI entegreli dönüştürücümde henüz bir sorunla karşılaşmadım.

Evet gerçek aygıtta çıkar o ayarlar. CCS C kodlarınız nasıl?

Ali_54

sürücü sağlayıcısı WCH  yazıyor. bilmiyorum bu firmayi.
dönüştürücüyü takıp gelen com dan yöneticideki iletişim ayarlarına baktım. sorun yok orda. orası da aynı: 9600 veri 8 bit eşlik yok, stop 1
kodları bi kitaptan esinlendim biraz değiştirdim.
hataları azaltmak için yine com - özellikler - gelişmişten arabelleği küçülttüm. bakalım deniyoruz. sonucu yazacağım.  ccs c ise:
#include <16f877.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

// Denetleyici konfigürasyon ayarları
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

#define use_portb_lcd TRUE   // LCD B portuna bağlı

#include <lcd420.c>  
#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1)                                                                   // TX,RX uçlarının hangi pinler olacağını tanımlıyor
                                                                 
int i,a=8;
char   klavye[];  // klavye isminde 80 üyeli bir dizi tanımlanıyor

#int_rda   // RX ucuna veri gelince meydane gelen kesme
void serihaberlesme_kesmesi ()
{
    printf(lcd_putc,"\f-KESME-");
   klavye=getc(); // String ifadeyi al ve "klavye" adlı dizi değişkenine aktar.
  printf(lcd_putc,"\fYazdiginiz Metin:\ns = %s.",klavye); 
    DELAY_MS(200);
  disable_interrupts(int_rda); // int_rda kesmesini pasif yap
}

/********* ANA PROGRAM FONKSİYONU********/

void main ( )
{
   setup_psp(PSP_DISABLED);       
   setup_spi(SPI_SS_DISABLED);     
   setup_timer_1(T1_DISABLED);     
   setup_timer_2(T2_DISABLED,0,1); 
   setup_adc_ports(NO_ANALOGS);   
   setup_adc(ADC_OFF);            
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı

  
   lcd_init();   // LCD'yi hazırla
klavye="ali";
  printf(lcd_putc,"\fSelam genclik");
  delay_ms(300);
  klavye="projem";
   printf(lcd_putc,"\nklavye :%s",klavye);
   delay_ms(400);
  enable_interrupts(GLOBAL);  // Aktif edilen tüm kesmelere izin ver
  for(i=1;i<5;i++)
  { output_toggle(pin_e2);
      delay_ms(100);}
   while(1) // Sonsuz döngü
   {
     
      output_toggle(pin_e0);
      delay_ms(50);
       output_toggle(pin_e1);
       delay_ms(50);
            output_toggle(pin_b5);
       delay_ms(50);
       printf(lcd_putc,"\fKESME BEKLENIYOR..."); 
        delay_ms(60);
         enable_interrupts(int_rda); // int_rda kesmesi aktif
        
        printf("2");
        putchar(a);
   }
}
1 harf öğretenin 4 gün kölesi olurum.