Mucit23 Hocam bakabilir misiniz ?

Başlatan baranekrem9, 22 Temmuz 2014, 17:16:23

baranekrem9

Hocam merhaba sitenizde bulunan bir projeyi yaptım çalışıyor ama bir iki ufak tefek şeyler var uğraşmama rağmen hala çözemedim yardımcı olursanız çok sevinirim.

Devreyi proteus da çalıştırıyorum

1) proteusda çalıştırıyorum devreyi sonra program acıyorum dereceyi gösteriyor ama hala bağlantı bekleniyor yazıyor
2) devre çalışırken proteusu durduruyoum bağlantı kesıldı dıyor tamam sorun yok ama tekrar başlattığımda sıcaklık değişmiyor c#arayüzünü kapatıp açmam gerekiyor

bu 2 sorunu nasıl çözebilirim iyi çalışmalar dilerim.


c#


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

namespace USB_Termometre
{
    public partial class Main : Form
    {
        byte[] RecievedData = new byte[65];
        byte Tam = 0;
        byte Onda = 0;
        bool durum = false;
        public Main()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            this.usbHidPort1.ProductId = Int32.Parse("1111", System.Globalization.NumberStyles.HexNumber);
            this.usbHidPort1.VendorId = Int32.Parse("1111", System.Globalization.NumberStyles.HexNumber);
            usbHidPort1.CheckDevicePresent();
            if (durum)
            {
               toolStripStatusLabel1.ForeColor = Color.Green;
               toolStripStatusLabel1.Text = "USB Bağlantısı Kuruldu";
            }
            else
            {
              toolStripStatusLabel1.ForeColor = Color.Red;
              toolStripStatusLabel1.Text = "USB Bağlantısı Bekleniyor";
            }
        }
        protected override void OnHandleCreated(EventArgs e)
        {
            base.OnHandleCreated(e);
            usbHidPort1.RegisterHandle(Handle);
        }
        protected override void WndProc(ref Message m)
        {
            usbHidPort1.ParseMessages(ref m);
            base.WndProc(ref m);
        }

        private void usbHidPort1_OnDataRecieved(object sender, DataRecievedEventArgs args)
        {
            if (InvokeRequired)
            {
                try
                {
                    Invoke(new DataRecievedEventHandler(usbHidPort1_OnDataRecieved), new object[] { sender, args });
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }
            else
            {
                RecievedData = args.data;
                Tam = RecievedData[2];
                Onda = RecievedData[3];
                label2.Text = "Sıcaklık : " + Tam.ToString() + "," + Onda.ToString() + "°C";
            }
        }

        private void usbHidPort1_OnDataSend(object sender, EventArgs e)
        {
           
        }

        private void usbHidPort1_OnDeviceArrived(object sender, EventArgs e)
        {
            toolStripStatusLabel1.ForeColor = Color.Green;
            toolStripStatusLabel1.Text = "USB Bağlantısı Kuruldu";
        }

        private void usbHidPort1_OnDeviceRemoved(object sender, EventArgs e)
        {
            toolStripStatusLabel1.ForeColor = Color.Red;
            toolStripStatusLabel1.Text = "Bağlantı Kesildi";
            label2.Text = "Sıcaklık : --,-°C";
        }

        private void usbHidPort1_OnSpecifiedDeviceArrived(object sender, EventArgs e)
        {
            toolStripStatusLabel1.ForeColor = Color.Green;
            toolStripStatusLabel1.Text = "USB Bağlantısı Kuruldu";
            durum = true;
            if (durum)
            {
                toolStripStatusLabel1.ForeColor = Color.Green;
                toolStripStatusLabel1.Text = "USB Bağlantısı Kuruldu";
            }
            else
            {
                toolStripStatusLabel1.ForeColor = Color.Red;
                toolStripStatusLabel1.Text = "USB Bağlantısı Bekleniyor";
            }
        } 
        private void usbHidPort1_OnSpecifiedDeviceRemoved(object sender, EventArgs e)
        {
            toolStripStatusLabel1.ForeColor = Color.Red;
            toolStripStatusLabel1.Text = "USB Bağlantısı kesildi";
            label2.Text = "Sıcaklık : --,-°C";
            durum = false;
            if (durum)
            {
                toolStripStatusLabel1.ForeColor = Color.Green;
                toolStripStatusLabel1.Text = "USB Bağlantısı Kuruldu";
            }
            else
            {
                toolStripStatusLabel1.ForeColor = Color.Red;
                toolStripStatusLabel1.Text = "USB Bağlantısı Bekleniyor";
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Çıkış yapmak istediğinizden emin misiniz ?", "Uyarı", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
            if (result == DialogResult.Yes)
            {
                Environment.Exit(1);
            }
        }
    }
}





#include <18F4550.h>
#device ADC=10
#fuses xtPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL2,CPUDIV1,VREGEN,NOBROWNOUT // 8MHZ
#use delay(clock=4MHZ)

#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 <pic18_usb.h>     
#include <USB_Driver.h>                            //USB konfigurasyon bilgileri bu dosyadadır.
#include <usb.c>
#include <lcd_driver.c>
#include <ds18b20.c>

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

#define UcNokta1  1

unsigned int16 Term;
unsigned int8 paket[64];
unsigned int8 Tam,Onda;
float Sicaklik;

void main()
{
   setup_timer_3(T3_DISABLED | T3_DIV_BY_1);
   
   lcd_init();
   
   printf(lcd_putc,"\f");
   printf(lcd_putc,"USB Baglantisi \nBekleniyor");
   delay_ms(100);
   
   usb_init();                     
   usb_task();                   
   usb_wait_for_enumeration();
   
   if(usb_enumerated())   
   {
      printf(lcd_putc, "\f");
      printf(lcd_putc, "Baglanti Kuruldu");
      lcd_gotoxy(1,2);
      printf(lcd_putc, "DS18B20 Okunuyor");
      Sicaklik = ds1820_read();
      printf(lcd_putc, "\f");
      lcd_gotoxy(1,1);
      printf(lcd_putc, "BARAN EKREM");
   }
   
   while(TRUE)
   { 
      while(usb_enumerated())
      {
         if (usb_kbhit(1))       //Eğer pc'den yeni bir paket geldiyse
         {           
            usb_get_packet(UcNokta1, paket, 64); //paketi oku   
            output_high(pin_a0);
         }
         
         lcd_gotoxy(1,2);
         printf(lcd_putc,"SICAKLIK=%3.1f", Sicaklik);
         lcd_putc(223);
         lcd_putc("C  ");
         
         Term = Sicaklik * 10;
         Tam = Term / 10;
         Onda = Term % 10;
         
         paket[1] = Tam;
         paket[2] = Onda;
         
         usb_put_packet(UcNokta1, paket, 64, USB_DTS_TOGGLE); // Datayı Gönder..
         Sicaklik = ds1820_read();
      }
     
      Sicaklik = ds1820_read();
      printf(lcd_putc, "sicaklik = %f", Sicaklik);
   }
}

Mucit23

Programı isiste hiç denemedim. Bu yüzden pek yardımcı olamayacağım. Devreyi gerçekte kurarsan daha net anlaşılır.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

Powered by EzPortal