۰۱-مهر-۱۳۸۹, ۲۱:۴۹:۵۸
(۰۱-مهر-۱۳۸۹, ۲۰:۲۰:۱۹)salehjg نوشته است: [ -> ](۰۱-مهر-۱۳۸۹, ۱۹:۵۲:۲۷)mohammad qc نوشته است: [ -> ]تشکر از جوابتون
ولی باز جواب نداد یعنی فایل AVR-DOS.LBX درون LIB هست
در ضمن config_avr-dos.bas و config_mmc.bas راکپی میکنم ولی بسکام این دو را ارور میگیرد . قبل از کپی برنامه "include "Config_MMC.bas$ را ارور میگیرد .
نمودونم باید چه کار کنم لطفا راهنمایی کنید.درضمن برنامه راهم گذاشته ام .
سلام
برنامه رو نیگاه کردم ولی اشکال های دیگه ای داره(البته با توجه به متن کد که پست دادین)
(یه سوال: ABU چیه؟ توی بسکام تعریف نشده هست.)
Abu printer باید به هم چسبیده نوشته شوند،(اگر ABU چیز خاصی نباشد و جزء اسم آرایه باشه)
مثلا آرایه Abuffer تعریف نشده هست.
یا
..
فکر کنم شما فایل دیگه ای رو include کردید که اینا تعریف شدن.
اگه در موردشون توضیح بدین، شاید با کمک دوستان مشکلتون حل بشه.
موفق باشید.
باسلام مجدد
با عرض معذرت برنامه ای که گذاشته بودم تغییراتی داده شده بود و برنامه اصلی نبود برنامه اصلی به شرح زیر است :
$regfile = "m32def.dat"
$crystal = 8000000
$swstack = 64
$hwstack = 128
$framesize = 128
Config Portc = Output : Portc = 0
Config Pind.1 = Input : Portd.1 = 1
Rec_key Alias Pind.1
Config Porta.1 = Output : Porta.1 = 0
Led_rec Alias Porta.1
Config Porta.2 = Output : Porta.2 = 0
Led_play Alias Porta.2
Config Int0 = Falling
On Int0 Request
Enable Interrupts
Enable Int0
'****************************************************************
Waitms 1
$include "Config_MMC.bas"
$external _mmc
Gbdriveerror = Driveinit()
If Gbdriveerror <> 0 Then
Led_rec = 1 : Wait 1 : Led_rec = 0
Else
Led_play = 1 : Wait 1 : Led_play = 0
End If
Gbdriveerror = Drivecheck()
'****************************************************************
Config Adc = Single , Prescaler = 32 , Reference = Avcc
'****************************************************************
Declare Sub No_key
Dim Abuffer(512) As Byte
Dim Wsrampointer As Word
Dim Lsectornumber As Long
Dim Cop_lsec As Integer
Lsectornumber = 100
Dim I As Integer
For I = 1 To 512
Abuprint(i) = 0
Next
I = 1
'************************************WRITING PROCEDURE*************
Do
If Rec_key = 0 Then
Call No_key
Led_rec = 1
Start Adc
Goto Main
End If
Loop
Main:
Wsrampointer = Varptr(abuprint Er(1))
Do
For I = 1 To 512
Abuffer(i) = Getadc(0)
Abuffer(i) = Abuffer(i) - 498
Next
Gbdriveerror = Drivewritesector(wsrampointer , Lsectornumber)
Lsectornumber = Lsectornumber + 1
I = 1
Loop
Request:
Stop Adc
Cop_lsec = Lsectornumber
Led_rec = 0
Lsectornumber = Lsectornumber - 1
'********************************READING PROCEDURE*****************
From_one:
Do
If Rec_key = 0 Then
Call No_key
Goto Start_play
End If
Loop
Start_play:
Led_play = 1 : Led_rec = 0
Lsectornumber = 100
Wsrampointer = Varptr(abuffer(1))
Gbdriveerror = Drivereadsector(wsrampointer , Lsectornumber)
Do
I = 1
For I = 1 To 512
Portc = Abuffer(i)
Waitus 117
Next
Lsectornumber = Lsectornumber + 1
Gbdriveerror = Drivereadsector(wsrampointer , Lsectornumber)
Loop
Until Cop_lsec = Lsectornumber
'*************************************
Portc = 0
Led_play = 1 : Led_rec = 1
Goto From_one
Return
End
'*************************************
Sub No_key
Do
Loop Until Pind.1 = 1
Waitms 5
End Sub
$crystal = 8000000
$swstack = 64
$hwstack = 128
$framesize = 128
Config Portc = Output : Portc = 0
Config Pind.1 = Input : Portd.1 = 1
Rec_key Alias Pind.1
Config Porta.1 = Output : Porta.1 = 0
Led_rec Alias Porta.1
Config Porta.2 = Output : Porta.2 = 0
Led_play Alias Porta.2
Config Int0 = Falling
On Int0 Request
Enable Interrupts
Enable Int0
'****************************************************************
Waitms 1
$include "Config_MMC.bas"
$external _mmc
Gbdriveerror = Driveinit()
If Gbdriveerror <> 0 Then
Led_rec = 1 : Wait 1 : Led_rec = 0
Else
Led_play = 1 : Wait 1 : Led_play = 0
End If
Gbdriveerror = Drivecheck()
'****************************************************************
Config Adc = Single , Prescaler = 32 , Reference = Avcc
'****************************************************************
Declare Sub No_key
Dim Abuffer(512) As Byte
Dim Wsrampointer As Word
Dim Lsectornumber As Long
Dim Cop_lsec As Integer
Lsectornumber = 100
Dim I As Integer
For I = 1 To 512
Abuprint(i) = 0
Next
I = 1
'************************************WRITING PROCEDURE*************
Do
If Rec_key = 0 Then
Call No_key
Led_rec = 1
Start Adc
Goto Main
End If
Loop
Main:
Wsrampointer = Varptr(abuprint Er(1))
Do
For I = 1 To 512
Abuffer(i) = Getadc(0)
Abuffer(i) = Abuffer(i) - 498
Next
Gbdriveerror = Drivewritesector(wsrampointer , Lsectornumber)
Lsectornumber = Lsectornumber + 1
I = 1
Loop
Request:
Stop Adc
Cop_lsec = Lsectornumber
Led_rec = 0
Lsectornumber = Lsectornumber - 1
'********************************READING PROCEDURE*****************
From_one:
Do
If Rec_key = 0 Then
Call No_key
Goto Start_play
End If
Loop
Start_play:
Led_play = 1 : Led_rec = 0
Lsectornumber = 100
Wsrampointer = Varptr(abuffer(1))
Gbdriveerror = Drivereadsector(wsrampointer , Lsectornumber)
Do
I = 1
For I = 1 To 512
Portc = Abuffer(i)
Waitus 117
Next
Lsectornumber = Lsectornumber + 1
Gbdriveerror = Drivereadsector(wsrampointer , Lsectornumber)
Loop
Until Cop_lsec = Lsectornumber
'*************************************
Portc = 0
Led_play = 1 : Led_rec = 1
Goto From_one
Return
End
'*************************************
Sub No_key
Do
Loop Until Pind.1 = 1
Waitms 5
End Sub
درضمن آرایه abuffer نیز تعریف شده است .Dim Abuffer(512) As Byte