İyi çalışmalar.Visual basic 2010 kullanıyorum.Seri port ile led tabele kontrolü gerçekleştirmek istiyorum.Yazdığım kodların pc tarafında sorun yok.Sadece pic karta veri aktarırken sorun yaşıyorum.Ledleri açıp kapatmak için "a1","a0" gibi kodlar gönderiyorum.Ancak bunun seri porttan çıkarken ascii kodlar şeklinde çıktığını okumuştum.Ben pic tarafında veriyi alırken hex şeklinde okumak istiyorum ama nasıl yapacağımı bilmiyorum.Veri vb tarafında nasıl göndermeliyim bilmiyorum.Yardımcı olabilir misiniz?Kod örnekleri c# ta olması da sorun değil.Yeterki olayı biri açıklasın.Teşekkürler.
Merhaba
Aşağıdaki dosyada tüm bilgiler var.Anlaşılmayan yer olursa yazın lütfen.Not,dosyaların hepsini C:\ 'ye indirin,VB kodlar ona göre derlenmiştir.Kolay gelsin.
https://rapidshare.com/files/3196736720/yldzelektronik.rar
Öncelikle ilginiz için teşekkür ederim.Yardımınız ve hassasiyetiniz içinde ayrıca teşekkür ederim.(Klasör ismindeki jest cabası...).Hocam şimdi 1 verisinin hex kodu 0x31 ancak siz asmdeki kodunuzda bunu nerede sorguluyorsunuz ben o satırları göremedim?Birde ben aynı yapıda program yazdım ccs c de ancak lcd saçma karakterler aldım.Veriyi alan değişkenimi char[] yaptım olmadı char yaptım olmadı int olmadı unsigned int yaptım olmadı..Pic tarafında sanırım sorunum yada donanımsal bir problem var.Aslında benim anlamadığım veri seri porttan çıkarken karkter olarak mı ascii olarak mı nasıl çıkar ve karşıda gelen veriyi nasıl soorgulamalıyız?
Merhaba
Seri iletişimde PC'den gelen hex datasının ne olduğu önemli değil.PC ne yolluyorsa onu alıyor.Aşağıdaki kod ile de RCREG değerini "W" geçici değişkenine atıyor return ile "MOVWF PORTA"nın üst satırına atlıyor(return dönüşü dolayısı ile)ve de "W" değişkeni PORTA'ya verilip gösteriliyor.Özetle sizin PC'den gönderdiğiniz hex ne olursa olsun PIC'te ASCII kodun ilk dört bitini görebilirsiniz.Arzu ederseniz,gerekli konfigürasyonları yaparak da diğer üst dört bit için örneğin PORTB nin pinlerinde göstermeniz olasıdır.Yanlız burada işin bir "püf"noktası sizin PC'den yolladığınız hex kodunu işlemek veya portlardaki data ile karşılaştırıp işlem yapabilmeniz için yazılımda değişiklik yapmak gerekir.O zaman gelen hex değerini XOR komutu ile karşılaştırmanız ve ona göre bir operasyon yapmanız gerekir.
VERI_AL
BTFSS PIR1,RCIF; RCIF BAYRAĞI (1) Mİ?
GOTO VERI_AL
BCF PIR1,RCIF;---ÇOK ÖNEMLİ KODDDD
MOVF RCREG,W
RETURN
#include <16F877A.H>
#fuses HS, NOWDT, NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT, NODEBUG, NOCPD
#use delay(clock=20000000)
#use rs232(baud=2400,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=PORT1)
#include <exlcd.c>
char gelen=0; //burayı ilk etapta gelen[]; şeklinde yapmıştım.
void main()
{
lcd_init();delay_ms(250);
while (true)
{
printf(lcd_putc,"Gelen:\n%x",gelen); //bu kısımda %x değilde %s ve %c şeklinde denedim.gerçi x de denedim.
gelen=getc();
}
}
sorunum ise arayüzden gönderdiğim a1 verisini hex fe yada benzeri şekilde alıyorum.string göstersemde aynı karakterleri alıyorum.Değişen birşey olmuyor yani...Ancak sorunumun ne olduğunu bilmiyorum.Acaba invert ile alakalı olabilir mi?Yazılımla invert nasıl yapılır?Veriyi gönderirken tektek mi göndermeliyim yoksa string de gönderebilirmiyim?Birde pc tarafıda veri gönderimi sonlandığında nasıl bildiriliyor?Yani pic tarafında printf("selam \r"); şeklinde yaptığımızı pcde nasıl yapıyoruz?
Bunlar benim nette yada forumda arayıp cevap bulamadığım sorular.Gözümden kaçmış olabilir.Kaynak belirtmenizde yeterli.Teşekkürler.!
İyi çalışmalar.Tekrar başlık açmak istemedim.Burada belirttiğim sorunumu aştım.Ancak şimdiki sorunum porttan veri dinleme.Porttan sağlıklı bir şekilde veri dinleyemiyorum.
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
okunan = SerialPort1.ReadLine
textbox1.Text = okunan
End Sub
Bu kodlarla text box içinde ilk başta gönderdiğim veriyi görüyorum ancak hemen program çöktüğüne dair hata mesajı alıyorum.Şu windowsun hata mesajı gönderilsin mi uyarısını alıyorum.:
(http://img849.imageshack.us/img849/4539/30586485.jpg)
Sağlıklı bir şekilde nasıl veriyi dinleyebilirim?Teşekkürler.
Data Received olayı, seri port tan herhangi bir data geldiğinde oluşan kesmedir. ReadLine komutu ise, '\n' yani 0x0A hexadecimal değeri gelene kadar portu dinler. Senin yazdığın kodlara göre, ilk data geldiği anda olay oluşuyor ve kesmeye gidiyor. Ve kesme içerisinde '\n' gelmesini bekliyor... Burada mantık hatası var. Çünkü kesme içerisinde \n gelmesini beklerken, yeni data geliyor ve tekrar olay oluşuyor. Kesmeye gitmesi gerekirken, hala bir önce gelen data nedeniyle girdiği kesmeden çıkamadığı için hata veriyor... ReadLine komutu yerine, alternatif metodlar mevcut. Onları kullanabilirsin. ReadByte, ReadChar gibi.
Bu cevabınız hemen bir ışık yanmasına neden oldu ve pic tarafında printf("%s\n",göndermek istediğim veri); şeklinde kodumu değiştirince sorun düzeldi.Teşekkürler.Şimdi son aşamadayım.Formun boyutlarını değiştirmek istiyorum ancak msdn.com da verilen örnek kodlar bende çalışmıyor.Form1 sub altında yapıyorum olmuyor.Buton olayları içinde de olmuyor.Form1 bunu referans alamaz me kullanın gibi bişey diyordu.Acaba bu konuda yardım edebilirmisiniz?Teşekkürler.
Formun boyutlarını değiştirmek istiyorsanız, üzerinde çalıştığınız formun köşesinden tutup istediğiniz boyuta getirebilirsiniz. Kod içerisine birşey eklemenize gerek yok. Formun boyutlarınada özellikler penceresinden bakıp manuel olarakta girebilirsiniz. Max. ve Min. boyutlarını belirleyebilirsiniz.
Ben programın içinde yani programım çalışırken değiştirmek istiyorum.Boyutları seri porttan aldığım verilere değiştirmek istiyorum.Acaba mümkün mü?Aslında en çok anlam veremediğim şey msdn de yayınlanan kodların neden çalışmadığı.
form1.size= new system.drawing.size (300,200) satırını form1 olayına yada herhangi bir yere yazıyorum ama
serialio.form1 cannot refer to itsel through its default instance; use 'Me' instead.
Var mı ilgilenebilecek arkadaş?Microsoftun yayınladığı kodları da denedim ancak bir problem var ve ne tür bir problem olduğunu bilmiyorum.Yapmak istediğim şey formun boyutlarını program çalışırken değiştirebilmek.Örneğin 3 buton olsun ve buton 1 genişliği arttırsın buton iki yüksekliği arttırsın.buton 3 default ayarları yüklesin.Yardımcı olursanız sevinirim.İyi çalışmalar.
Diğer istediğini'de buna göre yapabilirsin sanırım
VB 2010 [Tutorial] How To Resize a Form Using Buttons (http://www.youtube.com/watch?v=6nbFpo_DwrQ#ws)
@the_gariban ilgine teşekkürler ama ben bunu daha evvel denedim ve çalışıyor.Yine denedim yine çalışmıyor.Anlamıyorum.Sorun nedir?Burdaki kodlarla hata almıyorum ama formum standart büyüklükte geliyor.
Visual Basic i çok iyi bilmiyorum ama bildiğim kadarı ile form load olayındaki seçeneklerinde ekranın ortasında başla ,vb gibi seçenekler vardı.Belki o ayarları değiştirmeniz gerekiyordur.
yeni proje açıp denedim onda oluyo istediğim gibi ancak benim eski çalışmada olmuyor.anlamıyorum nedenini.hata falanda vermiyor.
Form elemanlarının boyutları, konumları kodla değiştirilebilir. PIC'den ilgili veriyi düzgünce alabilirseniz bunları yapabilirsiniz.
Hocam mevzu şu:Form içinde her hangi bir şarta bağıl olmadan değiştirmeye çalışıyorum.Eski projemde bunu yapamazken yeni açtığım projede değiştirebiliyorum.Ben bunun sebebini anlamaya çalışıyorum.
me.height=100
me.width=200
buradaki sayılar yerine nereden bilgi alırsan al olur. bu kodları butonun altına yazarsan butona bastığında olur. data_recived in altına yazarsan orada olur.
keşke görme imkanınz olsaydı.Gerçi başka şekilde hallettim şimdi ama o sorunun neden olduğunu bulamıyorum.Öğrenmem gerektiğini düşünüyorum.
Madem herhangi bir şarta bağlı olmadan yaptırmak istiyorsan öyleyse bir prosedür oluştur. Gerekiyorsa bu boyut gibi bilgileri parametre ile gönder. Belki böyle olur.
[ur] USB mini POV-Display (http://www.youtube.com/watch?v=HWQ_ul9nQ8U#)[/url]
Alıntı yapılan: yldzelektronik - 08 Mayıs 2012, 19:39:28
Hocam mevzu şu:Form içinde her hangi bir şarta bağıl olmadan değiştirmeye çalışıyorum.Eski projemde bunu yapamazken yeni açtığım projede değiştirebiliyorum.Ben bunun sebebini anlamaya çalışıyorum.
Form için maximum ve minimum form boyutlarını girmişsen, kod içerisinde değiştirsen bile yeni değer max. ve min. değerlerden büyük ise işlev görmez. Form özelliklerini bir kontrol et bakalım.
@kayaaydin:
Yok hocam öyle bişeyle de olmuyor.Farklı bir sebebi var.Yeni oluşturduğum projede istediğim şekilde çalışıyor.Ama ben o projede neyi yanlış yaptığımı bulmaya çalışıyorum.
@fgokcegoz:
Hocam dediğiniz benimde aklıma geldi.Kontrol ettim ancak max size : 0;0 min size:0;0 olarak duruyor.Ben bu formla baya oynadım ama hangi özellik buna sebeb oldu anlamaya çalşışıyorum.
Diğer form ile karşılaştırıyorum.Herşey aynı.Ama şuanda oluşturduğum yeni projeye kopyaladım dosyaları.Sorunsuz çalışıyor.Yardımlarınız için hepinize teşekkür ederim.Kudretuzuner beye ayrıca teşekkürlerimi iletiyorum.
http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formborderstyle.aspx (http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formborderstyle.aspx)
FormBorderStyle ı değiştirmiş olabilirsin. ölçeklendirilebilir olmalı..
Alıntı yapılan: muhittin_kaplan - 09 Mayıs 2012, 11:22:41
http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formborderstyle.aspx (http://msdn.microsoft.com/en-us/library/system.windows.forms.form.formborderstyle.aspx)
FormBorderStyle ı değiştirmiş olabilirsin. ölçeklendirilebilir olmalı..
Aynı şekilde yeni projede açtım ancak yeni çalışma istediğim gibi.fixeddialog olarak her ikiside duruyor. ???