proton basic ile pc hdd read write

Başlatan Tarik konca, 11 Şubat 2018, 09:27:29

Tarik konca

proton basic ile pc hdd read write

sd kart teknolojisi varken boyle bir projeye gerek varmi bilmiyorum ben yinede ugrasmisim eskiden

belki lazim olur dusuncesiyle paylastim sector kisminda okuma yazma yapiyor herhangi bir dosya sistemi yok

yazilanlari gormek isterseniz disk.bin dosyasini Hex Workshop gibi bir programla acip bakin

gerci rs 232 ciktida da goruyorsunuz

bu projenin asembler olarak yazilmis hali proteus un samples klasoru icinde

asembler ile ugrasmak zor ilerde bir seyler ilave etmek zor bende proton basicde calisacak sekilde duzenledim

ben bu proje yi eskiden gercek devrede calistirmistim sorunsuz calisiyor 5400 rpm 2.5 inc 40 gb kucuk disk de

sadece bi dunya baglanti yapmak gerekiyor dedim ya sd kart varken bununla ugrasilmaz lazim olursa

proteus 7.10

proton basic compiler 3.6.0.2

dosyalar ekde

Tek Care Format C:

Hattuşa

#1
slm devre usta;

vermiş olduğunuz bilgiler için tşk ederim. yapmış olduğunuz sistemin ne işe yaradığını tam bilemedim ama size sormak istediğim macro kullanımı hakkında bilgi almak istiyorum.

$define ata_reg8_write(bir,iki) Reg8_Write_bir=bir:Reg8_Write_iki=iki:GoSub  ATA_Reg8_Write_
$define sector_yaz(ata_adres) toplam_ata=ata_adres:ata_a0=toplam_ata.Byte0:ata_a1=toplam_ata.Byte1:ata_a2=toplam_ata.Byte2:ata_a3=toplam_ata.Byte3:GoSub LOG_STOP
$define sector_oku(ADRES) toplam_ata=ADRES:ata_a0=toplam_ata.Byte0:ata_a1=toplam_ata.Byte1:ata_a2=toplam_ata.Byte2:ata_a3=toplam_ata.Byte3:end_ata_a0=toplam_ata.Byte0:end_ata_a1=toplam_ata.Byte1:end_ata_a2=toplam_ata.Byte2:end_ata_a3=toplam_ata.Byte3:GoSub DUMP_ALL
$define hdd_init GoSub INIT
$define ata_reg16_read(x) Reg16_Read_tmp=x:GoSub ATA_Reg16_Read_



yukarıda kullanmış olduğunuz macro işlevi hakkında biraz bilgi verebilirmisiniz?
macroların nasıl çalıştığını öğrenmek istiyorum.
proton basic in kendi forumunda les nickli kişi macro generatoru yayınlamış. macro kullanmayı bilemediğim için programı kullanamadım.
http://www.protonbasic.co.uk/vbdownloads.php?do=download&downloadid=430

yardımcı olabilirmisiniz?

Tarik konca

#2
Device =18F452
Dim zaman_degisken As Word

$define led_yak TRISB.0=0:PORTB.0=1

'bu sekilde kullanirsaniz programda her led_yak komutunu kullandiginiz da
'sanki siz yazmissiniz gibi ustteki satirlari ilave eder en garanti yontem
'budur ozellikle fazla gosub kullaniyorsaniz boyle kullanin fakat fazla kod uretir

$define led_bilink TRISB.0=0'
                   PORTB.0=0'
                   DelayMS 500'
                   PORTB.0=1'
                   DelayMS 500'
                   
'bu sekildede kullanabilrsiniz macro rutini bittiginde bir adet bos satir
'bosluk verin macronun bittigini isaret eder yukardaki aciklamalar yine gecerli

$define led_bilink2(zaman) While 1=1'
                           TRISB.0=0'
                           PORTB.0=0'
                           DelayMS zaman'
                           PORTB.0=1'
                           DelayMS zaman'
                           Wend'
                           
'bu sekilde paramertreli macroda kullanabilrsiniz macro parmetresi cok adetli olabilir
've sizin gonderdiginiz degere gore boyut alir gozukur fakat ne yazarsaniz macroda
'kullandiginiz yerde aynisini yazar  bir baska degiskene esitleyebilrsiniz
'ustteki iki aciklamalar yine gecerli
                           
$define led_bilink3(zaman) zaman_degisken=zaman:GoSub alt_delay

'bu sekilde kullanirsaniz daha az kod uretir fakat yaptiginiz gosub lari iyi sayin
'yaptiginiz gosub adedi stack level i asarsa islemci surekli reset atar
'yada bir yerde kilitlenir kalir unutmayin proton basic in hazir komutlarida
'kendi icinde gosub komutunu kullanir

$define SD_oku SD
Dim SD_Byte_RW As Byte
Dim deger As Byte
GoTo OverLibCode

SD Macro   
GoSub SDSub
Byte_Byte SD_Byte_RW, Return_Var   
Endm 
SDSub:
SD_Byte_RW=SD_Byte_RW+1
Return         
OverLibCode:

'bu sekilde kullanirsaniz gonderdiginiz macrodan deger dondurur
'ayni c deki fonksiyon gibi geri donen deger byte word sanirm float da olabilir
'aslinda proton basici ustteki anlatimlardaki gibi kullanirsaniz cok daha karisik
'islerden basit programlar la cikabilirsiniz c compiler lara gerek duymazsiniz
'yinede bu dunyada program cilik gecerli dilinin c veya c++ oldugu gercegini
'degistirmez diger c versiyonlari c++ dan sonra degistirilerek sanki uretimis

TRISC=0

Main_Prog:

While 1=1
PORTC=SD_oku
DelayMS 1000
Wend


'birde proton basicin kendi komutlari yine bu yontemle ozellestirilebiliyor
'alttaki ornek de serout komutunu ozellestirdim zaman zaman lazim oluyor
'daha sade programlar yazmak icin

$define ozel_serout SerOut PORTA.0, 16780,

'bunu yazar programda herhangi bir yerde bir alttaki komutu kullanirsaniz
'sorunsuz calisir ben cok kullaniyorum programi rahat anlayabilmem icin

ozel_serout[66]

'aklima gelenler bunlar sanirim bu yontemle daha bir cok sekillendirmeler
'yapilabilir kendinize ozel bir proton basic olur
'proton basici tercih etmemin en buyuk sebebi bu komuttur
'sorulariniz olursa buralardayim                                   

main:
led_bilink3(100)

While 1=1
Wend

alt_delay:
TRISB.0=0
PORTB.0=0
DelayMS zaman_degisken
PORTB.0=1
DelayMS zaman_degisken
Return


yada en guzeli mikro basic kullanin son versiyonunu indirdim kullaniyorum 2 k limitli proton basic gibi bir cok islemci

icin bedava degil fakat mukemmel bence biraz alismak gerekiyor eskiden kullanmistim fakat cabuk sacmalamasindan dolayi

birakmistim isi cok duzeltmisler sadece pic mcu icin degil bir cok mcu yu destekliyor biraz ugrassam onuda cildirtirim sacmalar hale getiririm

fakat isi ciddiye aliyorlar ve calisiyorlar mikroe nin sitesinde derleyicilere bir bakin ticari kullaniyorsaniz satin almaya deger

yok para harcayamam diyorsaniz proton basic bir cok islemci icin bedava sanirim bu sitede daha once

gonderilen proton basic bedava mesajlarini takip etmissinizdir free islemci listeside vardi sitesinde
Tek Care Format C:

Tarik konca

yukardaki sistemin ne oldugunu anlayamadim yazmissiniz

su anda bilgisayarlarda cd rom ve harddisk icin sata veri yolu kullaniliyor

eskiden 40 veya 44 pinli ide diskler kullanilirdi yukardaki sistem bu eski bilgisayar disklerini pic 18f458 mcu ile okuyup yazmak

icin sector erisimli olarak dosya sistemi yok ilk mesajda yazdigim gibi sd kart varken bununla ugrasilmaz bi dunya baglanti gerekiyor ve cok fazla

guc harciyor zamaninda ugrasmisim belki lazim olur dusuncesiyle yazdim
Tek Care Format C:

Tarik konca

birde yazmayi unuttum parametreli veya parametresiz macroyu baska bir macro icinde cagirabilyorsunuz

cagirdiginiz macronun daha ust satirlarda tanimlanmasi gerekiyor

macronun parametresi macro olurmu c++ daki fonksiyon gibi onu bir deneyim yeni aklima geldi sanirim olmaz denemek lazim

olursada mukemmel our
Tek Care Format C:

Hattuşa

devre ustam;
1. tekrarlayan işlemler için gosub kullanıyoruz. tanımlamalar içinde symbol, burda macronun avantajı nedir? yukarıdakileri okudum ama kafa dolu olduğu için belki cevabınız vardırda ben anlayamadım. detaylandıramazmısınız?
2. protonda usb wizard kullandınız mı? usb çalışması yaptınızsa bizede öğretirmisiniz?
ilginiz tşk ederim

Maxim

@devre çok teşekkür ederiz bu bilgiler için
aslında bu macro konusunu ayrı bir başlık altında proton bölümünde açmak lazım
çok önemli çünkü ve bizde öğrenmek istiyoruz

Hattuşa

sanırım proton ile ilgili gelişme yok

Powered by EzPortal