_

Çavuş
17 Şubat 2007
Tarihinde Katıldı
Takip Ettikleri
1 üye
Görüntülenme (?)
10 (Bu ay: 0)
Gönderiler Hakkında
_
11 yıl
18F4550 USB Bağlantı Sorunu
Merhaba arkadaşlar,

Bilgisayar ile pic arasında usb haberleşme gerçekleşecek bir uygulama geliştiriyorum. Uygulamanın benzetimi (simülasyonu) başarılı olsa da devre üzerinde çalışmıyor. USB'yi bilgisayara bağladığımda kendisi sürücüyü yüklüyor ve işlem başarılı iletisini gönderiyor ancak buna rağmen işlemler gerçekleştirilmiyor. Kabloyu çıkarıp taktığımda ise sürücüde sorun gözüküyor. Bu sefer cihazı hiçbir şekilde tanımıyor.

 
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN
#use delay(clock=48000000)

//20 Mhz'lik osilatör kullanıyorum

#define USB_HID_DEVICE TRUE
#define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT
#define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT
#define USB_EP1_TX_SIZE 64
#define USB_EP1_RX_SIZE 64

#include <pic18_usb.h>
#include <USB_Driver.h>
#include <usb.c>


Bu konuda ne yapmamı tavsiye edersiniz?

Teşekkürler
_
11 yıl
İki PIC arasında SPI haberleşme sorunu
Merhaba Arkadaşlar,

İki adet PIC'in SPI üzerinden haberleşeceği bir uygulama geliştiriyorum. Uygulamanın çalışmasını deneme amacıyla da örnek olarak 8 bayt verinin iletimini yapmayı denedim. Sunucu her bir baytı yolladıktan sonra istemci de ona karşılık yine bir bayt yolluyor ancak ilk veri iletimi esnasında sorun çıkıyor. Sunucu veriyi doğru bir şekilde iletiyor ancak gelen değer 0 olması gerekirken 49 -yani 1 değerinin asci karşılığı dönüyor- Dönen verinin 49 olmasının sebebi ise, haberleşmeyi başlatacağım zaman sunucudan gönderdiğim '1' değeri. Bu durumu nasıl çözebilirim sizce?

Teşekkürler.

Sunucu

 
output_low(Istemci1);
spi_write('1');
output_high(Istemci1);

for(i=0;i<8;i++)
{
if(denetim==1)
{
denetim = 0;
gelenVeri = 0;
output_low(Istemci1);
spi_write(veri[i]);
while(!spi_data_is_in());
gelenVeri = spi_read();
output_high(Istemci1);
denetim= 1;
printf(lcd_putc,"\fVeri: %d",gelenVeri);
delay_ms(500);
}
}



İstemci

 
if(spi_data_is_in())
{

veri = spi_read();
delay_ms(5);

if(veri == '1')
{
for(i=0;i<8;i++)
{
while(!spi_data_is_in());
veri = spi_read();
delay_ms(5);
spi_write(i);
}
}
}
_
12 yıl
Anlık görüntü aktarımlı Quadrotor
Merhaba Arkadaşlar,

Bitirme projesi olarak anlık görüntü aktarımlı quadrotor yapacağım. Görüntü anlık olarak bilgisayara aktarılacak. Görüntü aktarımı için uygun malzemeleri araştırıyorum. Bu konuda sizlere bir sorum olacak.

Alıcı Verici

http://www.hobbyking.com/hobbyking/store/uh_viewitem.asp?idproduct=15295&aff=561489

Usb dönüştürücü

http://www.ebay.com/itm/Hot-Sale-Easycap-USB-2-0-Video-Audio-VHS-to-DVD-Converter-Capture-Card-Adapter-/181381949177?pt=US_Video_Capture_TV_Tuner_Cards&hash=item2a3b34e6f9

Kamera

http://www.hobbyking.com/hobbyking/store/uh_viewitem.asp?idproduct=11977&aff=561489



Malzemelerini kullanmayı düşünüyorum. Bu konuda ne dersiniz?
_
12 yıl
Anlık görüntü aktarımlı Quadrotor
Merhaba Arkadaşlar,

Bitirme projesi olarak anlık görüntü aktarımlı quadrotor yapacağım. Görüntü anlık olarak bilgisayara aktarılacak. Görüntü aktarımı için uygun malzemeleri araştırıyorum. Bu konuda sizlere bir sorum olacak.

Alıcı Verici

http://www.hobbyking.com/hobbyking/store/uh_viewitem.asp?idproduct=15295&aff=561489

Usb dönüştürücü

http://www.ebay.com/itm/Hot-Sale-Easycap-USB-2-0-Video-Audio-VHS-to-DVD-Converter-Capture-Card-Adapter-/181381949177?pt=US_Video_Capture_TV_Tuner_Cards&hash=item2a3b34e6f9

Kamera

http://www.hobbyking.com/hobbyking/store/uh_viewitem.asp?idproduct=11977&aff=561489



Malzemelerini kullanmayı düşünüyorum. Bu konuda ne dersiniz?
_
12 yıl
7805 ısınma sorunu
Merhaba arkadaşlar,

< Resime gitmek için tıklayın >

7805 entegresiyle 12V'u 5V'a çekiyorum. Kullandığım devre şeması ise yukarıdaki gibi. Yalnız bu işlemi yaparken 7805 çok ısınıyor. Buna sebep olarak giriş geriliminin yüksek olmasını düşündüm. Aynı devreyi aynı gerilimle yüksüz kurdum herhangi bir şekilde ısınma olmadı. Çektiği akımı ölçmeye karar verdim. 7805'in 3.bacağıyla toprak arasındaki akımı ölçtüğümde -3A gibi bir değerle karşılaştım. Sanırım sorunun sebebi bu. Kullandığım devrede 7805 bir adet mikrodenetleyici, bir adet LM1117 ve direnç gibi elemanları besliyor aşırı akım çekecek bir durum söz konusu değil. Sorunun sebebi sizce ne olabilir?
_
12 yıl
L293/L298 ile pil meselesi
Merhaba arkadaşlar,

Motor sürücü entegreleriyle ilgili bir sorum var. Devremde yüksek akım veren bir motor sürücüsü kullanmak istiyorum. Bu yüzden L298 cazip geliyor ama daha yüksek akım için L293'lerin paralel bağlanabileceğine dair bir yazı okumuştum.
Bu tam olarak nasıl yapılıyor?
Herhangi bir sakıncası var mı?
Eğer aynı işe yarıyorsa L298 kullanmak gereksiz mi?

Bir diğer husus, beslemeler. Pil olarak 11.1V ve 2600 mAh değerindeki Li-Po pilleri kullanmayı düşünüyorum. Hem 5V'a düşürüp mikrodenetleyiciyi besleyeceğim hem de motor sürücü devrelerini.
Sizce bu pil ve pil değerleri devrem için uygun mudur?
_
12 yıl
LCD dalgalanma sorunu
Merhaba arkadaşlar,

Devre üzerinde basılan butonların sonucunu LCD üzerinde gösteriyorum. Ancak Lcd üzerinde dalgalanma oluyor. İlk önce A ve B portundaki girişler okunuyor daha sonra bunlar LCD'ye yansıyor. İlk satırda herhangi bir sorun yok. İkinci satır dalgalanıyor sadece

#include <16f877.h>  

#device ADC=10

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000)

#use fast_io(a)
#use fast_io(b)
#use fast_io(c)

#use rs232(baud=2400, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1)

#include <benim_LCD.c>

#define Vites_Ileri PIN_B6
#define Vites_Geri PIN_B7

int1 Sol,Sag,Ileri,Geri;
int Vites=1;
int Hareket_Durumu=0;
long Deger_1,Deger_2;
float V1,V2;

#int_RB
void Vites_Belirle()
{
disable_interrupts(int_rb);

if(input(Vites_Ileri))
{
delay_ms(20);
while(input(Vites_Ileri));

Vites++;

if(Vites>5)
Vites=5;
}

else if(input(Vites_Geri))
{
delay_ms(20);
while(input(Vites_Geri));

Vites--;

if(Vites<1)
Vites=1;
}
}


void Deger_Oku()
{
set_adc_channel(0);
delay_us(20);
Deger_1=read_adc();
V1=0.0048828125*Deger_1;

delay_ms(60);

set_adc_channel(1);
delay_us(20);
Deger_2=read_adc();
V2=0.0048828125*Deger_2;

delay_ms(60);

Sol=0;
Sag=0;
Ileri=0;
Geri=0;

}

void Degerlendir()
{
if((V1<1.5) && (V1>=0))
{
Sol=1;
Sag=0;
}

else if((V1<=5) && (V1>3.5))
{
Sol=0;
Sag=1;
}

else
{
Sol=0;
Sag=0;
}


if((V2<1.5) && (V2>=0))
{
Ileri=1;
Geri=0;
}

else if((V2<=5) && (V2>4))
{
Ileri=0;
Geri=1;
}

else
{
Ileri=0;
Geri=0;
}

if((Ileri==1)&&(Sol==1))
{
lcd_komut(0x01);
printf(lcd_veri," Yon: Kuzeybati ");
imlec(2,1);
printf(lcd_veri,"Hiz seviyesi: %d",Vites);
Hareket_Durumu=180;
}

else if((Ileri==1)&&(Sag==1))
{
lcd_komut(0x01);
printf(lcd_veri," Yon: Kuzeydogu ");
imlec(2,1);
printf(lcd_veri,"Hiz seviyesi: %d",Vites);
Hareket_Durumu=120;
}

else if((Geri==1)&&(Sag==1))
{
lcd_komut(0x01);
printf(lcd_veri," Yon: Guneydogu ");
imlec(2,1);
printf(lcd_veri,"Hiz seviyesi: %d",Vites);
Hareket_Durumu=140;
}

else if((Geri==1)&&(Sol==1))
{
lcd_komut(0x01);
printf(lcd_veri," Yon: Guneybati ");
imlec(2,1);
printf(lcd_veri,"Hiz seviyesi: %d",Vites);
Hareket_Durumu=160;
}

else if(Ileri==1)
{
lcd_komut(0x01);
printf(lcd_veri," Yon: Kuzey ");
imlec(2,1);
printf(lcd_veri,"Hiz seviyesi: %d",Vites);
Hareket_Durumu=110;
}

else if(Sag==1)
{
lcd_komut(0x01);
printf(lcd_veri," Yon: Dogu ");
imlec(2,1);
printf(lcd_veri,"Hiz seviyesi: %d",Vites);
Hareket_Durumu=130;
}

else if(Geri==1)
{
lcd_komut(0x01);
printf(lcd_veri," Yon: Guney ");
imlec(2,1);
printf(lcd_veri,"Hiz seviyesi: %d",Vites);
Hareket_Durumu=150;
}

else if(Sol==1)
{
lcd_komut(0x01);
printf(lcd_veri," Yon: Bati ");
imlec(2,1);
printf(lcd_veri,"Hiz seviyesi: %d",Vites);
Hareket_Durumu=170;
}

else if((Sol==0)&&(Sag==0)&&(Ileri==0)&&(Geri==0))
{
lcd_komut(0x01);
printf(lcd_veri,"Arac durduruldu ");
imlec(2,1);
printf(lcd_veri,"Hiz seviyesi: %d",Vites);
Hareket_Durumu=100;
}
}


void Hareket_Yonu_Gonder(int veri)
{
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0xFF);
putc(0xFF);
putc(0xFF);
putc(0xFF);
putc(0xFF);
putc('A');
putc('A');
putc('A');
putc(veri);
putc(veri);
putc(veri);
}

void Vites_Bilgisi_Gonder(int veri)
{
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x55);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0x00);
putc(0xFF);
putc(0xFF);
putc(0xFF);
putc(0xFF);
putc(0xFF);
putc('B');
putc('B');
putc('B');
putc(veri);
putc(veri);
putc(veri);
}

void main()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);

setup_adc_ports(AN0_AN1_AN3);
setup_adc(ADC_CLOCK_INTERNAL);


set_tris_a(0x03);
set_tris_b(0xC0);
set_tris_c(0x00);

output_a(0x00);
output_b(0x00);
output_c(0x00);

lcd_hazirla();

enable_interrupts(GLOBAL);

while(1)
{
enable_interrupts(int_rb);
Deger_Oku();
Degerlendir();
Hareket_Yonu_Gonder(Hareket_Durumu);
Vites_Bilgisi_Gonder(Vites);
}

}
_
12 yıl
B4-B7 kesme sorunu
Merhaba arkadaşlar,

Programımda B4-B7 kesmesini kullanıyorum (Daha doğrusu sadece B6 ve B7 girişlerini). Sistem istediğim gibi çalışmıyor.

#int_RB 
void Ayarla()
{
if(input(PIN_B6))
{
delay_ms(20);
while(input(PIN_B6));

Sayi++;

if(Sayi>5)
Sayi=5;
}

else if(input(PIN_B7))
{
delay_ms(20);
while(input(PIN_B7));

Sayi--;

if(Sayi<1)
Sayi=1;
}
}

..
set_tris_b(0xC0);
output_b(0x00);

enable_interrupts(int_rb);
enable_interrupts(GLOBAL);




Sayı değişkenini LCD üzerinde gösteriyorum. Örneğin, sayı değeri 1 iken B6 butonuna basıyorum. Bir anda 3 oluyor,5 oluyor. Aynı durum B7 için de geçerli. Bir anda 2-3 sayı birden azaltıyor. Bazen düzgün çalışıyorlar ama çoğunlukla dengesiz.


delay_ms(20); 
while(input());



kısımlarını silerek de çalıştırdım ama daha da kötüleşti.

Sizce ne yapmalıyım? Hata nerededir?

Teşekkürler
_
12 yıl
18f4550 Usb haberleşme
Merhaba arkadaşlar,

18f4550 ile bilgisayar arasında haberleşme yapmak istiyorum. Bu konuda internette birçok araştırma yaptım. Özellikle Uğur Yalçın Hocamın örnekleri çok faydalı oldu. Neticesinde bir örnek yaptım. Bağlantının kurulmasında bir sorun olmuyor ancak devamında program çalışmayı durduruyor. Nedenini anlayamadım. Bilgi sahibi olanlar yardımcı olursa çok makbule geçer. Teşekkürler

//Arayüz 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using USBManagement;

namespace Usb_Hid
{
public partial class Form1 : Form
{

UsbHidDevice my_hid = new UsbHidDevice();
DialogResult Sonuc;
byte Gelen_Veri;

short VendorID = short.Parse("1111", NumberStyles.HexNumber);
short ProductID = short.Parse("1111", NumberStyles.HexNumber);

byte[] my_buffer = new byte[64];
byte[] gelen_buffer = new byte[64];
public Form1()
{
InitializeComponent();
my_hid.DeviceStateChanged += new DeviceStateChangeEventHandler(OnChangeDeviceState);
}

private void Form1_Load(object sender, EventArgs e)
{

CheckForIllegalCrossThreadCalls = false;
}

//OKU METHODU
void Oku()
{

while (true)
{
my_buffer[3] = (byte)'o';

if (my_hid.IsOpen)
{

if (my_hid.IsWindowsXpOrLater)
my_hid.WritePipe(my_buffer, TransactionType.Interrupt);
else
my_hid.WritePipe(my_buffer, TransactionType.Control);

if (my_hid.IsWindowsXpOrLater)
my_hid.ReadPipe(ref gelen_buffer, 64, TransactionType.Interrupt);
else
my_hid.ReadPipe(ref gelen_buffer, 64, TransactionType.Control);

Gelen_Veri = gelen_buffer[2];

if (Gelen_Veri == 1)
{
bilgi.Visible = true;
hareket.Visible = true;
}

}
}
}

public delegate void OkuHandler();
public void IslemTamam(IAsyncResult ar)
{

}

private void OnChangeDeviceState(object sender, DeviceStateChangeEventArgs e)
{
if (e.CurrentState == DeviceState.Opened)
{
toolStripStatusLabel1.Text = "Cihazın durumu değişti. Şu anki durum: Açık";
//Debug.WriteLine("Device State Changed!! Curren State : Opened");
}
else if (e.CurrentState == DeviceState.Closed)
{
toolStripStatusLabel1.Text = "Cihazın durumu değişti. Şu anki durum: Kapalı";
//Debug.WriteLine("Device State Changed!! Curren State : Closed");
}
else if (e.CurrentState == DeviceState.Waiting)
{
toolStripStatusLabel1.Text = "Cihazın durumu değişti. Şu anki durum: Bekliyor";
//Debug.WriteLine("Device State Changed!! Curren State : Waiting");
}
else if (e.CurrentState == DeviceState.Ready)
{
toolStripStatusLabel1.Text = "Cihazın durumu değişti. Şu anki durum: Hazır";
//Debug.WriteLine("Device State Changed!! Curren State : Ready");
}
else
{
toolStripStatusLabel1.Text = "Cihazın durumu değişti. Şu anki durum: Cihaz bulunamadı";
//Debug.WriteLine("Device State Changed!! Curren State : None");
}
}


private void OnDeviceAttached(object sender, EventArgs e)
{
bool Success;

toolStripStatusLabel1.Text= "Attached Device";
Success = my_hid.OpenPipe(VendorID, ProductID);
if (Success)
{

toolStripStatusLabel1.Text= "Bağlantı kuruldu";

}
}

private void OnDeviceDetached(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = "Detached Device";

if (my_hid.IsOpen)
my_hid.ClosePipe();

toolStripStatusLabel1.Text = "Cihaz ile bağlantı kesildi";
this.Text = "Cihaz bekleniyor..";
}


public void VeriGonder(char veri)
{
my_buffer[3] = (byte)veri;

if (my_hid.IsOpen)
{
if (my_hid.IsWindowsXpOrLater)
my_hid.WritePipe(my_buffer, TransactionType.Interrupt);
//my_hid.WritePipe(my_buffer, TransactionType.Control);
//else
//my_hid.WritePipe(my_buffer, TransactionType.Control);
}
else
{
toolStripStatusLabel1.Text = "Cihaz ile bağlantı yok!";
}
}



private void LedPIC()
{
throw new NotImplementedException();
}



private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
if (my_hid.IsOpen)
if (my_hid.ClosePipe())
toolStripStatusLabel1.Text = "Veri iletim hattı kapatıldı";
else
toolStripStatusLabel1.Text = "Bağlantı kapatılamıyor..";

if (my_hid.IsRegistered)
my_hid.UnRegisterDevice();
}
catch (Exception err)
{
MessageBox.Show(err.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}



protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter)
{
if (!my_hid.IsOpen)
{
Sonuc = MessageBox.Show("USB bağlantısı oluşturmak ister misiniz?", "Bağlantı", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (Sonuc == DialogResult.Yes)
{
if (my_hid.OpenPipe(VendorID, ProductID))
{
toolStripStatusLabel1.Text = "Bağlantı Kuruldu";

//my_hid.DeviceArrived += new HidDeviceArrivedEventHandler(OnDeviceAttached);
//my_hid.DeviceRemoved += new HidDeviceRemovedEventHandler(OnDeviceDetached);

OkuHandler my_oku = new OkuHandler(Oku);
my_oku.BeginInvoke(new AsyncCallback(IslemTamam), null);

}
else
{
toolStripStatusLabel1.Text = "Cihaz bulunamadı...!";
}

}
}
}

else if (keyData == Keys.Escape)
{

if (my_hid.IsOpen)
{
Sonuc = MessageBox.Show("USB bağlantısını kapatmak istediğinize emin misiniz?", "Bağlantı", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (Sonuc == DialogResult.Yes)
{
my_hid.ClosePipe();
toolStripStatusLabel1.Text = "Bağlantı Kesildi";
bilgi.Visible = false;
hareket.Visible = false;
konum.Text = "";
}
}
}

else if (keyData == Keys.Q)
{
VeriGonder('Q');
konum.Text = "Kuzeybatı";
}

else if (keyData == Keys.W)
{
VeriGonder('W');
konum.Text = "Kuzey";
}
else if (keyData == Keys.E)
{
VeriGonder('E');
konum.Text = "Kuzeydoğu";
}
else if (keyData == Keys.D)
{
VeriGonder('D');
konum.Text = "Doğu";
}
else if (keyData == Keys.S)
{
VeriGonder('S');
konum.Text = "Güney";
}
else if (keyData == Keys.A)
{
VeriGonder('A');
konum.Text = "Batı";
}
else if (keyData == Keys.Space)
{
VeriGonder('P');
}


return base.ProcessCmdKey(ref msg, keyData);
}


}
}



#include <18F4550.h> 
#device ADC=10
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN,NOBROWNOUT
#use delay(clock=48000000)

#define USB_HID_DEVICE TRUE
#define USB_EP1_TX_ENABLE USB_ENABLE_INTERRUPT //Uçnokta1'de Kesme transferi aktif
#define USB_EP1_RX_ENABLE USB_ENABLE_INTERRUPT
#define USB_EP1_TX_SIZE 64 //Uçnokta1 için maksimum alınacak ve gonderilecek
#define USB_EP1_RX_SIZE 64

#include "flex_lcd.c"
#include <pic18_usb.h>
#include <USB_Konfigurasyon.h> //USB konfigurasyon bilgileri bu dosyadadir.
#include <usb.c>

#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)

#define UcNokta1 1

#define Kontrol_Noktasi PIN_A5

#define surum_no1 0x00 //surum_no2.surum_no1 ornek: 1.0
#define surum_no2 0x01

#define BILGISAYAR PIN_D0
#define ISLEMCI PIN_D1

#define usb_durum paket[0]
#define yon_bilgisi paket[1]
#define port_durum paket[2]
#define kontrol_bilgisi paket[3]

unsigned int8 paket[64];
byte Kontrol,Sol,Sag,Ileri,Geri;

..


void main()
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_timer_3(T3_DISABLED | T3_DIV_BY_1);
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı


set_tris_a(0xFF);
set_tris_b(0x00);
set_tris_c(0x00);
set_tris_d(0x00);

output_a(0x00);
output_b(0x00);
output_c(0x00);
output_d(0x00);

lcd_init();




while(1)
{

if(input(Kontrol_Noktasi))
{

printf(lcd_putc,"\f");
printf(lcd_putc,"USB Baglantisi");
lcd_gotoxy(1,2);
printf(lcd_putc,"Bekleniyor");

output_high(BILGISAYAR);
output_low(ISLEMCI);

usb_init();
usb_task();
usb_wait_for_enumeration(); //Cihaz, hazır olana kadar bekle

Kontrol=1;

if(usb_enumerated())
{
printf(lcd_putc,"\f");
printf(lcd_putc,"Baglanti Kuruldu");
lcd_gotoxy(5,2);
printf(lcd_putc,"MeRKeZ");
delay_ms(2000);
}

while(usb_enumerated())
{

paket[1]=Kontrol;
usb_put_packet(UcNokta1, paket,64, USB_DTS_TOGGLE); // Datayı Gönder..

if (usb_kbhit(1)) //Eğer pc'den yeni bir paket geldiyse
{
usb_get_packet(UcNokta1, paket, 64); //paketi oku

Switch(yon_bilgisi)
{
case 'Q':
Ileri=1;
Sol=1;
Geri=0;
Sag=0;
break;

case 'W':
Ileri=1;
Sol=0;
Geri=0;
Sag=0;
break;

case 'E':
Ileri=1;
Sol=0;
Geri=0;
Sag=1;
break;

case 'D':
Ileri=0;
Sol=0;
Geri=0;
Sag=1;
break;

case 'S':
Ileri=0;
Sol=0;
Geri=1;
Sag=0;
break;

case 'A':
Ileri=0;
Sol=1;
Geri=0;
Sag=0;
break;

case 'P':
Ileri=0;
Sol=0;
Geri=0;
Sag=0;
break;
}
}
}
}


}
}
_
12 yıl
Joystick buton kullanımı
Merhaba arkadaşlar,

Projemde kullanmak üzere joystick buton almıştım. Ancak bacak bilgileriyle ilgili bilgiye ulaşamadım. Nasıl kullanılacağına dair bilgi sahibi olan arkadaşlar yardımcı olursa sevinirim. Teşekkürler

< Resime gitmek için tıklayın >
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.