Selamun aleyküm Ustalar sizlere yine bir soru sormak istedim :)
Abiler bu visual basic 6.0 yada visual studio 2008 ile pic leri programlama olasılığımız var mı sizce yada bir eklentisi olabilir mi ?
Piclerin her birinin yazmaç adresleri diğerinden farklı çalışmaları fark gösterebiliyor ama onlar da sonuçta bilgisayarlar gibi 0 ve 1 leri kullanıyorlar işlem yaparlarken belki bazı tanımlamalarla visual basicde yazdığımız kodları pic lerin anlayacağı kodlara çevirebiliriz diye bir düşünce geldi içimden sizce de olabilir mi ne dersiniz ?
VB ile PIC programlayan görmedim.VB nin pic için kod ürettiğini duymadım.ama VB ile bir arayüz yaparsan bootloader ile PIC e prog atabilirsin veya veritoplamak için kullanabilirsin.ama VB ile pic e kod yazamazsın
MERHABALAR
ASLINA BKARSANIZ VB İLE YAZILMIŞ BASİT BİR YÜKLEME PROGRAMI BULMUŞTUM ZAMANINDA AMA
ŞUAN NERDEN BULDUĞUMU HATIRLAYAMIYORUM. AMA DAHA ÖNCE NETTEN İNDİRDİĞİM BİKAÇTANE 24C VE BENZERİ EEPROM PROGRAMLAMA YAZILIMLARI 2 BİKAÇTANESİNİ GÖNDERİYORUM BİTANESİNDE PİC18F SERİSİNİ PROGRAMLAMA YAZILIMI SANIRIM AMA DENEMEDİM İNCELEMEK İÇİN İNDİRMİŞTİM
ÜZERİNDEN BAYA ZAMAN GEÇTİ UMARIM İŞİNİZİ GÖRÜR
https://rapidshare.com/files/527663536/vbfrance_PROGRAMMATEUR-PIC-18F8722___Page.zip
https://rapidshare.com/files/2800513776/24c_serisi_eepro_rem_programlayıcı_hex_dosyalarını_açıyo_-_vbfrance_PROGRAMMATION-EEPROM-I2C___Page.rar
Visual studio yazılımları bilgisayar için program yazmak için geliştirilmiş yazılımlar grubuna giriyor. Herhangi bir işlemci için kod derleyici yazılımı o işlemciyi destekleyecek şekilde düzenlemiştir. Bildiğim kadarıyla işlemciler için de kod üretebilen basic tabaonlı derleyici var...
örneğin PICBASIC PRO™ gibi. visual studio'ya göre bazı farklar olması doğal karşılanmalıdır...
Linux altında çalışan ve pic lerimi programlayan c# ile yazdığım bir sistemim var. Pk2cmd kullanıyorum.
Yanlış hatırlamıyorsam Windows için de olması lazım pk2cmd.exe olarak, visual basic ile aynı şekilde konsoldan çalıştırabilirsiniz. ör. Vb6 ile shell("pk2cmd.exe -PPIC18F4550 -MP -Fmain.hex") gibi kullanabilirsiniz.Programmer on the go özelliği hariç pickit2 nin diğer özelliklerini kullanabildim.(tabi bir de logic analyzer özelliği kullanılmıyor)
Bunun dışında illa ki kodları kendim yazmak istiyorum derseniz, pickit2 kodlarını (microchip de .net ile kullanmış) veya pk2cmd kodlarını inceleyebilirsiniz.
Düzeltme: tabii ki donanımsal olarak pickit2 programlayıcı gerektiriyor. Başlığı okuyunca arada hiçbir programlayıcı olmayacağını düşünmemiştim.
Sanırım VB içerisinde PicBasic gibi kod yazabiliyormuyuz demek istediniz.
Bu türde bir yapı ya da eklenti duymadım.
Fakat diğer arkadaşlarımızın da dediği gibi PIC ile PC arasında haberleşen uygulamalar yapabilirsiniz.
Ama PIC içine gömeceğiniz bir kod üretemezsiniz Visual Basic ile.
Benim de bu günlerde böyle bir programlama cihazı ve yazılımı yapmak aklımdan geçmişti. Fakat PIC nasıl programlanır, yani data nasıl gönderilir, pic nasıl tanınır, nasıl silinir vs hiç ilgilenmedim. Döküman herhalde microchip sitesinde vardır, varmı bir link.
Pickit2nin kodu (http://www.google.com.tr/url?q=http://www.microchip.com/stellent/idcplg%3FIdcService%3DSS_GET_PAGE%26nodeId%3D1960&sa=U&ei=A4qdToz6Isnusga7qsyGCQ&ved=0CA4QFjAA&sig2=ZjnSGUaAeSecZFKAYk4A7w&usg=AFQjCNFp4_k7THxLT84NWUqk_M0HXzXZDw) açık. Fakat visual basic ile yazılmamış olabilir. visual basic ile pk2cmd kullanabilirsiniz.
kod kısmı karışık geldiği için ben pk2cmd olanı kullanıyorum. Kendi yazdığım program hex dosyayı güzelleştirip, mesela cihaz seri no değiştirip pk2cmd vasıtasıyla pice gönderiyor. programlama bitince penceresinden bu bilgiyi alıp düdük çalıyor. hata çıktıysa onu da bildiriyor. yani benim exe içinde komut satırı çalışıp geri dönen mesajları yorumluyor. hem pk2cmd için .net gerekmiyor. ve programlama bitince bu uygulama tamamen sonlandığı için orijinal pk2 programı gibi şişme donma yapmıyor.
pk2cmd komutlar
Alıntı YapPICkit 2 COMMAND LINE HELP
Options Description Default
----------------------------------------------------------------------------
A<value> Set Vdd voltage Device Specific
B<path> Specify the path to PK2DeviceFile.dat Searches PATH
and calling dir
C Blank Check Device No Blank Check
D<file> OS Download None
E Erase Flash Device Do Not Erase
F<file> Hex File Selection None
G<Type><range/path> Read functions None
Type F: = read into hex file,
path = full file path,
range is not used
Types P,E,I,C: = ouput read of Program,
EEPROM, ID and/or Configuration
Memory to the screen. P and E
must be followed by an address
range in the form of x-y where
x is the start address and y is
the end address both in hex,
path is not used
(Serial EEPROM memory is 'P')
H<value> Delay before Exit Exit immediately
K = Wait on keypress before exit
1 to 9 = Wait <value> seconds
before exit
I Display Device ID & silicon revision Do Not Display
J<newlines> Display operation percent complete Rotating slash
N = Each update on newline
K Display Hex File Checksum Do Not Display
L<rate> Set programming speed Fastest
<rate> is a value of 1-16, with 1 being
the fastest.
M<memory region> Program Device Do Not Program
memory regions:
P = Program memory
E = EEPROM
I = ID memory
C = Configuration memory
If no region is entered, the entire
device will be erased & programmed.
If a region is entered, no erase
is performed and only the given
region is programmed.
All programmed regions are verified.
(serial EEPROM memory is 'P')
N<string> Assign Unit ID string to first found None
PICkit 2 unit. String is limited to 14
characters maximum. May not be used
with other options.
Example: -NLab1B
P<part> Part Selection. Example: -PPIC16f887 (Required)
P Auto-Detect in all detectable families
PF List auto-detectable part families
PF<id> Auto-Detect only within the given part
family, using the ID listed with -PF
Example: -PF2
Q Disable PE for PIC24/dsPIC33 devices Use PE
R Release /MCLR after operations Assert /MCLR
S<string/#> Use the PICkit 2 with the given Unit ID First found unit
string. Useful when multiple PICkit 2
units are connected.
Example: -SLab1B
If no <string> is entered, then the
Unit IDs of all connected units will be
displayed. In this case, all other
options are ignored. -S# will list units
with their firmware versions.
See help -s? for more info.
T Power Target after operations Vdd off
U<value> Program OSCCAL memory, where: Do Not Program
<value> is a hexadecimal number
representing the OSCCAL value to be
programmed. This may only be used in
conjunction with a programming
operation.
V<value> Vpp override Device Specific
W Externally power target Power from Pk2
X Use VPP first Program Entry Method VDD first
Y<memory region> Verify Device Do Not Verify
P = Program memory
E = EEPROM
I = ID memory
C = Configuration memory
If no region is entered, the entire
device will be verified.
(Serial EEPROM memory is 'P')
Z Preserve EEData on Program Do Not Preserve
? Help Screen Not Shown
Each option must be immediately preceeded by a switch, Which can
be either a dash <-> or a slash </> and options must be separated
by a single space.
Example: PK2CMD /PPIC16F887 /Fc:\mycode /M
or
PK2CMD -PPIC16F887 -Fc:\mycode -M
Any option immediately followed by a question mark will invoke
a more detailed description of how to use that option.
Commands and their parameters are not case sensitive. Commands will
be processed according to command order of precedence, not the order
in which they appear on the command line.
Precedence:
-? (first)
-B
-S
-D
-N
-P
-A -F -J -L -Q -V -W -X -Z
-C
-U
-E
-M
-Y
-G
-I -K
-R -T
-H (last)
The program will return an exit code upon completion which will
indicate either successful completion, or describe the reason for
failure. To view the list of exit codes and their descriptions,
type -?E on the command line.
type -?V on the command line for version information.
type -?L on the command line for license information.
type -?P on the command line for a listing of supported devices.
type -?P<string> to search for and display a list of supported devices
beginning with <string>.
Special thanks to the following individuals for their critical
contributions to the development of this software:
Jeff Post, Xiaofan Chen, and Shigenobu Kimura
Operation Succeeded
HEX yükleyici yapmak aslında biraz meşakatli olabilir.
Nedeni de donanıma bağlı iş yapmanız gerek.
Misal programlama kiti COM port mu kullanıyor USB mi vb. değişkenler giriyor araya.
En temizi şeması ve içeriği açık bir şekilde bulunan programlama kiti için arabirim yapmak.
İlk etapta tek bir donanıma göre hareket etmek daha mantıklı. (En çok kullanılanlar ya da hazı elinizin altında olan bir donanım olursa çok daha iyi olur test için)
Gereksiz şeylere kafa yormanızı engeller.
Daha sonrasında da farklı donanımlar için de gerekli kodları yazarak desteklenen dev kit sayısı arttırılabilir.
Tekrar diyorum ilk etapta sadece tek bir donanıma odaklanın.
Arabirim süslemeye vs de uğraşmayın.
ilk kıstasınız "Program ROM'u sağlıklı bir şekilde yüklüyor mu?" olsun.
Sonrasında görsel kısmı istediğiniz gibi apın :)
Alıntı yapılan: t2 - 18 Ekim 2011, 17:14:51
Pickit2nin kodu (http://www.google.com.tr/url?q=http://www.microchip.com/stellent/idcplg%3FIdcService%3DSS_GET_PAGE%26nodeId%3D1960&sa=U&ei=A4qdToz6Isnusga7qsyGCQ&ved=0CA4QFjAA&sig2=ZjnSGUaAeSecZFKAYk4A7w&usg=AFQjCNFp4_k7THxLT84NWUqk_M0HXzXZDw) açık. Fakat visual basic ile yazılmamış olabilir. visual basic ile pk2cmd kullanabilirsiniz.
Hex güvenliği? Ben hexi net ortamına bir yere yükleyip müşterideki programmır tarafından çekilip pice yüklenmesi düşüncesindeyim, ancak hex adamın eline geçmemesi gerek.
Müşteriye özel led animasyon yapacaz değilmi hocam?
Hex(benzeri dosya) orada durur. fakat telefona bir şifre söylersin ozaman pice yüklenir. BU şifre, her defasında değişir. program sana kod bildirir, ona göre şifre söylersin. hex dosya sabit diske yazılmaz sadece hafızada açılır. Yaparız ederiz. Ya da sanal disk açılır ama kafayı çalıştıran biri buradan hexi armut gibi toplayabilir.
Alıntı YapHex güvenliği? Ben hexi net ortamına bir yere yükleyip müşterideki programmır tarafından çekilip pice yüklenmesi düşüncesindeyim, ancak hex adamın eline geçmemesi gerek.
pk2cmd kullanabilirsiniz, yazılım; programlama yapılacağı zaman net üzerinden hex'i çeker, programlamasını yapar (veya yapamaz) daha sonra dosyayı silersiniz. Dosya, müşterinin makinesinde c:\windows\temp vs. gibi iç klasörlere kopyalanabilir, uzantısı hex olmaz (sys32os911.tmp şeklinde olabilir mesela). Veya net üzerinde hex dosyasını şifreli olarak tutarsınız, programlama anında decryption yapıp , programlama sonunda tekrar encryption yaparsınız.
Bence program hexi mcuda sabit dursun animasyon işlemlerini epromdan okunan komutlara göre yapsın. Bu sayede sadece eproma veri yükleyerek işi kolaylaştırmış olabilirsiniz.
mesela epromdan
1 değerini aldığında sağdan sola kaydır
2 değerini aldığında soldan sağa kaydır
3 değerini aldığında ortadan kenara açıl
4 değerini aldığında kenardan ortaya kapan
vb..
Bu komutlardan sonra verilecek ikinci bi komutla bekleme süresi kaydırma sayısı gibi değerler girilebilir.
Aslında bu hex güvenliği bir yere kadar.
Asıl önemli olan şu soruyu sormanız gerek "Benim burada yazdığım kod epey yüksek fiyatlara satılan ve de benden başkasının yazamayacağı" bir kod mu. Ve de "Bu işe istediğim rakam (para) birinin HEX i kırmasından 4-5 kat daha mı maliyetli?
En yüksek seviye güvenlik diyorsanız işin ucu yine PC ye dayanacak.
Kurduğunuz sisteme sürekli bağlı olan ve de PC den aldığı emirleri yerine getiren bir uygulama yazmanız gerek.
Yaptığımız iş atla deve değil, program kırıp hex i alan adam zaten pic için de kod yazar. Amaç, sıradan adamlar elde etmesin.
Alıntı yapılan: t2 - 18 Ekim 2011, 17:14:51
visual basic ile pk2cmd kullanabilirsiniz.
64 bit desteği yokmuş
Değerli ustalarım vermiş olduğunuz cevaplar için hepinize ayrı ayrı teşekkür ediyorum...
Aslında benim sormak istediğim konu daha farklı idi yani şöyle...
Misal visual basicde bir buton koyuyorsunuz foruma ve bu butonun üstüne kod yazma anında çift tıkladığınızda buna bir döngü oluşturup açıyor ve siz o buton döngüsünün içinde ne istiyorsanız butona basınca gerçekleşmesi için o kodları yazıyorsunuz...
yada bir msgbox kutusunda yazı yazdırabilmek için gereken komutları yazıyorsunuz ekranda o işlem anında gerçekleşiyor sonuç olarak visual basicde bir donanım yok yani bir bilgisayar var ve hepsinin veri yolları mantığı birbirine göre aynı. Programı yazıyosun çalıştırınca hata yoksa çalışıyor.
Benim amacım bu visual basic forumunda bütün detayları oluşturup pice aynı şekilde aktarabilmek yani bir buton oluşturduk Command1 adında ve bu butonu picin RA.0 pinine tanımladık visual de bu butona ne işlev vermişsek o işlevi pic de çalıştırması için gerekli hex kodunu visual basic de oluşturabilirmiyiz ?
Linki (http://netduino.com/)inceleyiniz.
Visual Basic ile bu türde bir işlem yapamazsınız.
Nedeni Visual Basic PC için yapılmış bir uygulama ama asıl mesele gözünüzcen kaçan bir "İşletim Sistemi" gerçeği var.
Yani kullandığınız Windows işletim sistemi (artık hangi sürüm ise).
Visaul Basic aslında direk olarak donanıma erişememektedir. Bu yüzden Windows apileri winsock vb. yapıları kullanıyoruz.
Bunlar vasıtası ile donanımla haberleşmekte.
PIC programlarken ise (Siter PIC C, ister PIC BASIC) arada bir işletim sistemi olmadan direk olarak donanıma göre hareket eden kod yazıyoruz.
Ha şu olabilir. Biri oturur da VB kodunu PIC HEX e dönüştüren bir araç yapabilir. Ama yine de bu %100 çalışır demek doğru olmaz. Yazacağınız VB kodunu da bu dönüştürme işlemine uygun olacak şekilde (pin bacak tanımlamarı vs.) ek kodlar yazmanız gerekir.