۰۸-خرداد-۱۳۸۸, ۱۲:۲۱:۱۵
[/quote]سلام دوستان خوب هستین من میخوام یه ظبط پخش دیجیتال درست کنم با avr برنامه زیر رو ؟آزمایش کردم جواب داد و کار میکنه ولی فقط پخش از کلیات برنامه یه چیزای فهمیدم ولی جزیاتشو نه ممنون میشم دوستان توضیح بدن قسمتهای مثل آدرس دهی mmc و... و توضیحی برای اضافه کردن ظبط به این برنامه البته میخوام هر جا که خواستم ضبط کنم از همونجا هم بخونم و یه مشکل دیکه من با mmc 32 مگابایت مشکلی ندارم ولی 1گیگو نمیخونه ؟ همینطور sd مشکل کجاس ممنون میشم راهنمای کنید![Wink Wink](https://www.iranled.com/forum/images/smilies2/wink.gif)
آقا دیدم کسی جواب ننداد رو این کار کردم کسی هست اینو توضیح بده ؟]
![Wink Wink](https://www.iranled.com/forum/images/smilies2/wink.gif)
![Heart Heart](https://www.iranled.com/forum/images/smilies2/heart.gif)
آقا دیدم کسی جواب ننداد رو این کار کردم کسی هست اینو توضیح بده ؟]
نقل قول:[/align]align=left]$regfile = "m8def.dat"Do
$crystal = 11059200
$swstack = 64
$hwstack = 128
$framesize = 128
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 1
Pwm1a = 500
Pwm1b = 550
Config Pind.1 = Input : Portd.1 = 1
Rec_key Alias Pind.1
Config Portd.6 = Output : Portd.6 = 0
Led_rec Alias Portd.6
Config Portd.7 = Output : Portd.7 = 0
Led_play Alias Portd.7
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
Abuffer(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(abuffer(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
Pwm1a = Abuffer(i)
Waitus 117
Next
Lsectornumber = Lsectornumber + 1
Gbdriveerror = Drivereadsector(wsrampointer , Lsectornumber)
Loop Until Cop_lsec = Lsectornumber
'*************************************
Pwm1a = 0
Led_play = 1 : Led_rec = 1
Goto From_one
Return
End
'*************************************
Sub No_key
Loop Until Pind.1 = 1
Waitms 5[/align]
End Sub