Elektrotekno.com Ana Sayfa || Pic ve diğer işlemci ve denetleyiciler ile yapılmış devreler, projeler


BU hangi dilde yazılmıştır?

Kayıt: 16 Nis 2006
Mesajlar: 221
Konum: UZAYDAN
Offline
hikmetservili
Tarih: 06 08 2011 15:40

arkadaşar bu program hangi dilde yazılmıştır. bir de hexe çevirebilirmisiniz. teşekkürler.

device = 18f452
clock = 32
config osc = hspll

#option sd_spı = mssp
#option sd_support_sub_dırectorıes = true
#option lcd_data = portb.4
#option lcd_rs = portb.2
#option lcd_en = portb.3
#option lcd_ınıt_delay = 300
ınclude "sdfilesystem.bas"
ınclude "lcd.bas"

const buffersize = 500 // buffer to avoid glitches
const timerreload = 65036 // alter for different sample rates

dim timer as tmr1l.asword // alias to timer1
dim timeron as t1con.booleans(0) // start and stop
dim timerenabled as pıe1.booleans(0) // enable interrupts
dim timerınterrupt as pır1.booleans(0) // interrupt flag

dim file as string(13)
dim writepointer, readpointer as word // read/write pointers in
dim buffer(buffersize) as byte // circular buffer
dim datasize as longword // size of wav data in file
dim progress as longword // increment progress bar when zero
dim progressıncrement as longword // progress bar step

{
********************************************************************************
* name : ontimer (ınterupt) *
* purpose : sends bytes to r-2r dac on port d to play file *
********************************************************************************
}
ınterrupt ontimer() // ısr
timer = timerreload
save(0) // context save
ıf readpointer = writepointer then // buffer empty
porte.0 = 1 // set buffer empty indicator
else
ınc(readpointer) // increment read pointer
ıf readpointer = buffersize then // if end of buffer then...
readpointer = 0 // move back to beginning of buffer
endıf
portd = buffer(readpointer) // move byte to portd (r-2r ladder dac)
endıf
timerınterrupt = false // clear interrupt flag
restore
end ınterrupt
{
********************************************************************************
* name : readfmt *
* purpose : reads header of wav file and checks compatibility *
********************************************************************************
}
function readfmt() as boolean // read fmt block of wav file
dim ındex as byte
readfmt = true
ındex = 0
repeat // skip over rıff header
sd.readlongword
ınc(ındex)
until ındex = 3
ıf sd.readchar <> "f" then // check in fmt block
readfmt = false
endıf
ıf sd.readchar <> "m" then
readfmt = false
endıf
ıf sd.readchar <> "t" then
readfmt = false
endıf
ıf sd.readchar <> " " then
readfmt = false
endıf
sd.readlongword // skip over fmt size
ıf sd.readword <> 1 then // check pcm (un-compressed) file
readfmt = false
endıf
ıf sd.readword <> 1 then // check 1 channel (mono) file
readfmt = false
endıf
ıf sd.readlongword <> 16000 then // check sample rate (16khz)
readfmt = false
endıf
ındex = 0
repeat // skip to data size
sd.readbyte
ınc(ındex)
until ındex = 12
datasize = sd.readlongword
sd.readlongword // skip to data section
progressıncrement = datasize / 16
end function
{
********************************************************************************
* name : progressbar *
* purpose : updates progress bar during playback *
********************************************************************************
}
sub progressbar()
dec(progress)
ıf progress = 0 then
progress = progressıncrement
lcd.write("=")
endıf
end sub
{
********************************************************************************
* name : softstart *
* purpose : ramps dac output to new value to avoid clicks *
********************************************************************************
}
sub softstart(pnewvalue as byte)
dim value as byte
value = portd
repeat
ıf value < pnewvalue then
ınc(value)
elseıf value > pnewvalue then
dec(value)
endıf
portd = value
delayus(20)
until value = pnewvalue
end sub
{
********************************************************************************
* name : playfile *
* purpose : plays file *
********************************************************************************
}
sub playfile(pfile as string)
dim tempwritepointer as word
lcd.cls
lcd.writeat(1, 1, "{ ", pfile, " }")
lcd.writeat(2, 1, " openıng fıle ")
sd.openfile(pfile)
timer = timerreload // set timer one
readpointer = 0 // initialise pointers
writepointer = 0
ıf not(readfmt()) then // incompatible file format
lcd.writeat(2, 1, "wrong fıle type!")
else
lcd.writeat(2, 1, "----------------")
progress = progressıncrement
lcd.movecursor(2,1)
repeat // fill buffer initially
ınc(writepointer)
buffer(writepointer) = sd.readbyte
dec(datasize)
progressbar()
until (writepointer = buffersize - 1) or sd.eof
softstart(buffer(1)) // ramp up to first byte to play
timeron = true // start timer - play starts
repeat
tempwritepointer = writepointer // use a temp pointer in order
ınc(tempwritepointer) // to prevent interrupt
ıf tempwritepointer = buffersize then // detecting a buffer underun
tempwritepointer = 0 // when buffer is full
endıf
while tempwritepointer = readpointer
porte.1 = 1
wend
porte.1 = 0
writepointer = tempwritepointer
buffer(writepointer) = sd.readbyte // write next byte to buffer
dec(datasize)
progressbar()
until sd.eof or (datasize = 0)
endıf
sd.closefile
repeat // wait until buffer is empty
until readpointer = writepointer
timeron = false // stop timer
porte = 0
end sub


// main program...
trısd = 0
trıse = 0
porte = 0
softstart(127)
timeron = false // stop timer initially
enable(ontimer) // assign the interrupt handler
timerenabled = true // enable timer interrupts

lcd.cls
lcd.writeat(1, 1, "please ınsert sd")
repeat
until sd.ınit(spioscdiv4)

repeat
file = sd.dir(dirnext, sdfile) // search for next file on sd card
ıf file <> null then // file found
playfile(file)
endıf
until file = null

lcd.cls
lcd.writeat(1, 5, "fınıshed")


Reklamlar
Kayıt: 12 May 2009
Mesajlar: 9
Konum: Eskisehir
Offline
altanonat
Tarih: 06 08 2011 20:55

C dili olmadığı kesin. Basic ile yazılmış gibi geldi bana.
Başa dön
Kayıt: 08 Ekm 2006
Mesajlar: 315
Konum: Kahramanmaraş/Elbistan
Offline
bilsisco
Tarih: 06 08 2011 21:22

altanonat yazmış
C dili olmadığı kesin. Basic ile yazılmış gibi geldi bana.

basic değilde c yada foltran diye bir dil vardı o olabilir
Başa dön
Kayıt: 22 May 2011
Mesajlar: 310

Offline
matrak
Tarih: 06 08 2011 23:45

C dilinde yazılmış ama farklı bir versiyonunda olabilir.
Başa dön
Kayıt: 16 Tem 2009
Mesajlar: 516
Konum: Kayseri
Offline
muhendisbey
Tarih: 07 08 2011 00:01

pic basic gibi geldi
Başa dön
Kayıt: 08 Ekm 2006
Mesajlar: 315
Konum: Kahramanmaraş/Elbistan
Offline
bilsisco
Tarih: 07 08 2011 00:55

basic te açıklamalar için // yerine ' kullanılıyor
Başa dön
Kayıt: 28 Ksm 2006
Mesajlar: 479
Konum: Eskişehir
Offline
ta2mc
Tarih: 07 08 2011 02:29

Aslında programı bulduğunuz yerde açıklama olmalı ama;

ınclude "sdfilesystem.bas"
ınclude "lcd.bas"

satırlarından anlaşılıyor ki, kesinlikle BASIC dili.

Ve bu satırları google amcaya sorduğumuzda, karşımıza swordfish basic çıkıyor:
http://www.sfcompiler.co.uk/swordfish/

Ve alıntı yaptığınız program da şurada:
http://www.sfcompiler.co.uk/wiki/pmwiki...CWavPlayer
Başa dön
Kayıt: 16 Nis 2006
Mesajlar: 221
Konum: UZAYDAN
Offline
hikmetservili
Tarih: 07 08 2011 10:12

18f452 uygulaması evt doğru alıntı oda, ama kestiremedim yazılımı bande. micro c den bahsediyor ama c ye benzemiyor. net bir bilgisis olan arkadaş? bu devreyi yapmam gerekli.


18f2550 mmc uygulamasını yaptım oda çalışmadı. konu hakkında bilgisi olan arkadaşlar yardımlarınızı esiremeyin.

işin özü pic ile wav kaydı çaldırtmalıyım. yardımlarınızı bekliyorum.
Başa dön
Kayıt: 28 Ksm 2006
Mesajlar: 479
Konum: Eskişehir
Offline
ta2mc
Tarih: 07 08 2011 11:23

hikmetservili yazmış
18f452 uygulaması evt doğru alıntı oda, ama kestiremedim yazılımı bande. micro c den bahsediyor ama c ye benzemiyor. net bir bilgisis olan arkadaş? bu devreyi yapmam gerekli.


18f2550 mmc uygulamasını yaptım oda çalışmadı. konu hakkında bilgisi olan arkadaşlar yardımlarınızı esiremeyin.

işin özü pic ile wav kaydı çaldırtmalıyım. yardımlarınızı bekliyorum.


Bir önceki mesajımı okumamış gibi yazmışsınız.

Hangi dil olduğunu ve kaynağını yazdığım halde, halâ hangi dil olduğunu mu soruyorsunuz?

Zahmet edip, verdiğim bağlantılara bir baksanız...
Başa dön
Kayıt: 16 Nis 2006
Mesajlar: 221
Konum: UZAYDAN
Offline
hikmetservili
Tarih: 07 08 2011 12:36

yardımın için teşekkürler arkadaşım ama bende yorumumu yazdım.

ayrıca başka bir yardımdanda bahsettim. teşekkürler.

birde ,
//
Repeat
Until SD.Init(spiOscDiv4) // (burda hata veriyor spi haberleşme ayarı sanırım ama hata veriyor çıkamadım işin içinden)

Repeat
File = SD.Dir(dirNext, sdFile) // search for next file on SD card
If File <> Null Then // file found
PlayFile(File)
EndIf
Until File = Null

LCD.Cls
LCD.WriteAt(1, 5, "FINISHED")
Başa dön


Sayfaya git 1, 2  Sonraki

BU hangi dilde yazılmıştır?


Benzer Konular
- dokunmatik ekranlı hangi telefon alınmalı?
- Hangi elektronik programı daha iyi?
- Kpss'de hangi oturumlara girilmeli

- Hangi mikrodenetleyiciyi seçmeliyim diye düşünmeyin ..

- Hangi Yazılım Dilini Seçmelisiniz?
- hangi interneti kullanıyorsunuz ne tavsiye edersiniz
- BU hangi dilde yazılmıştır?
- sizce hangi telefon alınmalı?
- Hangi Uzmanlık Alanını Seçmeliyim?? Yardım ve Görüş İstiyorum

- PCB Cizmek icin hangi programi kullanmaliyim!!!

- hangi programlama öğrenmeli klavuzu

Sitemize üyelik ve içeriğin indirilmesi tamamen ücretsizdir. Sitemizde paylaşılan tüm dokümanlar (Tezler, makaleler, ders notları, sınav soru cevaplar, projeler) paylaşımcıların bireysel çalışmaları olup telif hakları kendilerine aittir ya da açık bir şekilde kamusal alana yerleştirilmiş dokümanların birer kopyalarıdır. Kişilerin bireysel çalışmalarını sitemizde yüklemesinde, sitemizde paylaşıma teşvik eden puanlama sisteminin de etkisi büyüktür. Bunlara rağmen hala size ait olan ve burada bulunmasına izin vermediğiniz dokümanlar varsa iletişim bölümünden yöneticilere bildirmeniz durumunda derhal silineceklerdir.
Powered by phpBB | Translated by phpBB Turkiye | Ads by Google Adsense | Design by Crazy Bat based