سلام
در مورد پخش mp3 با avr که اصلا بیخیال بشید چون عملیات دیکد کردن mp3 حداقل 30mips که avr از این کارا بلد نیست
این vs1011 توی ایران هست
من تا اونجایی که میدونم vs1003 هست که مشکل pcb زدنش بزرگترین مشکله
اگه wav هم خواستی با کیفیت پایین میشه با pwm توی avr پخش کرد
از این سوالهای ساختار فایلها دارید به wikipedia سر بزنید همه چیز رو داره برای mp3: http://en.wikipedia.org/wiki/MP3
$regfile = "M64def.dat " 'IT'S POSSIBLE USE DIFFERENT AVR-CHIPS
$crystal = 16000000 'or any
$baud = 9600
$swstack = 64
$hwstack = 128
$framesize = 128
'-------------------------------------------------------------------------------
Config Clock = Soft
Config Date = Dmy , Separator = .
Enable Interrupts
Time$ = "2033"
Date$ = "16.04.08"
'-------------------------------------------------------------------------------
'Config Lcdpin = Pin , Db4 = Pinf.4 , Db5 = Pinf.5 , Db6 = Pinf.6 , Db7 = Pinf.7 , E = Pinf.2 , Rs = Pinf.3
'Config Lcd = 16 * 2
'-------------------------------------------------------------------------------
Dim B As Byte
Dim L As Byte
Dim Ff As Byte
Dim S As String * 20
Dim Diskf As Long
Dim Disks As Long
'-------------------------------------------------------------------------------
Cls
Print "Initation..."
$include "Config_AVR-DOS.BAS"
$include "Config_MMC.bas" 'include mmc
Ff = Drivereset()
Ff = Driveinit()
$external Waitms
If Gbdriveerror <> 0 Then
Print "Error Config"
Print Gbdriveerror
End
End If
'include avr-dos
B = Initfilesystem(1) 'init file system
If B <> 0 Then Print "Error MMC"
'-------------------------------------------------------------------------------
'------------------------ PROGRAM START ------------------------------
'-------------------------------------------------------------------------------
A:
Print "Now Create file"
Diskf = Diskfree()
Disks = Disksize()
S = Time$
S = Time$
Ff = Freefile()
Open "test.txt" For Binary As #ff 'create file in MMC
Print Lof(#ff) ; " length of file"
Line Input#ff , S
Put #ff , Time$
'S = Str(disks)
'Print #ff , S ; " Byte Disk Size"
Put #ff , Date$
'Print #ff , "----------------------"
'Flush #ff
Close #ff
Print "File Created"
Print Time$
Wait 5
Goto A
End
سلام به همه دوستان واساتید گرامی از جمله ارش تورشیان و کیا جان و محسن خان و....
اقا یه لطف بکنین ببینین من و برنامم چی میگیم
من می خام هر وقت به lable a اومدم این فایل رو باز کنم و تاریخ و ساعت رو توش سیو کنم بدون این که تاریخ
و ساعت قبلی پاک بشه.البته این برنامه کار میکن هاااااا فقط مشکل این جاست که نمیتونم بین تاریخ ها و ساعت ها فاصله بذارم یا
هر کار دیگه ای بکنم دیگه میکرو یا نمینویسه رو مموری یا هنگ میکنه یا فقط اخرین تایم و دیتا رو نگه میداره یا
فونت میریزه به هم
خلاصه جیگرمو خون کرده(شرمنده)
چشه که نمیشه درست ادیتش کرد و فاصله داد بدون این که دیتای قبل پاک بشه؟؟؟
سلام
برنامتون یه سری ایرادها داره که نباید کار کنه
1. زیر برنامه a هیچ جا فراخوانی نمیشه و یه بار میاد و به end میرسه
2. یه سری کارا کردید معلوم نیست برای چی مثلا دو بار time$ رو ریختید توی s ولی s هیچ جا استفاده نشده
یا diskfree و disksize گرفتید ولی نتیجش جایی استفاده نشده ( توی کار برنامه بدرد نمیخورد پاکش کردم)
3. diskfree یکی از وقت گیر ترین کارهایی که از میکرو میخواین بخوصوص اگه مموری پر باشه. اگه شک دارید یه diskfree
بزنید باید حدود 10 ثانیه طول بکشه. پس اگه خواستید فضای خالی رو بدونید اول برنامه این رو اندازه بگیرید و توی یه
متغییر بریزید و از اون به بعد هر کاری میکنید از این متغییر جمع یا تفریق کنید
4. هر بار که فایل باز میشه (از هر نوعی) محل نوشتن و خوندن بعدی اولین بایته پس هر داده ای رو بریزید توی فایل overwrite
میشه
5. دستور seek برای مورد بالا نوشته شده که توی برنامه زیر ملاحضه میکنید:
$regfile = "M64def.dat " 'IT'S POSSIBLE USE DIFFERENT AVR-CHIPS
$crystal = 16000000 'or any
$baud = 9600
$swstack = 64
$hwstack = 128
$framesize = 128
Config Clock = Soft
Config Date = Dmy , Separator = .
Enable Interrupts
Time$ = "2033"
Date$ = "16.04.08"
Dim B As Byte
Dim L As Byte
Dim Ff As Byte
Dim S As String * 20
Dim Diskf As Long
Dim Disks As Long
Dim Acc As Long
Cls
Print "Initation..."
$include "Config_AVR-DOS.BAS"
$include "Config_MMC.bas" 'include mmc
Ff = Drivereset()
Ff = Driveinit()
$external Waitms
If Gbdriveerror <> 0 Then
Print "Error Config"
Print Gbdriveerror
End
End If
'include avr-dos
B = Initfilesystem(1) 'init file system
If B <> 0 Then Print "Error MMC"
'-------------------------------------------------------------------------------
'------------------------ PROGRAM START ------------------------------
'-------------------------------------------------------------------------------
Do
Wait 2 'you can type your calling subroutine and another code
Gosub A 'for example
Loop
End
A:
Print "Now Create file"
Ff = Freefile()
Open "test.txt" For Binary As #ff
Acc = Lof(#ff)
Print "acc:" ; Acc
Seek #ff , Acc
Print #ff , Time$
Print #ff , Date$
Close #ff
Return
سلام
آقا بازهم یه سوال تکراری فکر میکنم باید از آقای علی تروشه و آقای ای جوابشو بگیرم البته اگه بقیه هم جواب بدن چه بهتر
من میخواهم اطلاعات خود فایل رو ببینم منظورمو روشن تر میگم من میخواهم ببینم که مثلا توی فایل های عکس (فرمت مورد
استفاده ی من BMP و JPG) موارد زیرو بخونم:
1-اندازه ی عکس 2- بیت ریت
برای عکس همین دو مورد کافیه و اما برای فایل های صوتی (Wav وMP3) موارد زیر:
1- بیت ریت 2- زمان آهنگ
و اینم میخواهم بدونم که چه جوری میشه آهنگو به عقب و جلو برد؟؟؟؟
چقدر کم رو ام
[glow=green,2,300]با تشکر از همه ی دوستان
موفق باشید[/glow]
سلام
قبلا هم گفتم
همه فایلهای استاندارد و مشخص که توی ویندوز کاری انجام میدن یک یا چند تا چانک دارن
چانک به نوعی هدر فایله که اینجور اطلاعات که میخواین توشه
برای اینکه از اونا سر در بیاربید توی گوگل سرچ کنید همه چیز دستتون میاد من توی لینک پایین سرچ bmp رو گذاشتم:
http://www.google.com/search?hl=en&q=bmp+file+format&aq=f&oq =
سایت wikipedia دایره المعارف اینترنتی که همه چیز توش هست برای bmp:
http://en.wikipedia.org/wiki/BMP_file_format
اینجا خیلی خوب توضیح داده و من از روی mmc روی lcd رنگی pcf8833 عکس bmp رو نمایش دادم
اما بقیه فایلها
wav با کیفیت کم رو میتونید انجام بدید(توی wikipedia) هست ولی کیفیت بالا با avr نمیشه
برای تصاویر دیگه مثل jpg و غیره هم اینا لایه لایه هستن و توضیحات بازم توی ویکی هست فقط مشکل اینه که avr نمیتونه این پروسه بزرگ رو انجام بده
بدلیل پیچیدگی این عکسها یه سری image processor ساختن که omnivision از همشون خفن تره و sony erricson با دوربین cybershot از اینا استفاده میکنه. این شرکت عظیم ترین شرکت ساخت دوربینه که متاسفانه نزدیکترین فروشنده به ایران توی سنگاپوره و به ایران خدمات نمیده
اینم سایتش:
http://www.ovt.com/
آخرشه
توی پروداکتش رو زیر و رو کنید
mp3 هم که باز بیخیال از vs1003 استفاده کنید
خیلی از فایلها هم مثله mp4 یا چیزای دیگه codec خاصی دارن که میدونم mp4 لایسنس کدکش 7000 دلار قیمت داره پس بیخیال.
البته شاید بتونید با mp4 کار کنید ولی مدتها طول میکشه و به راحتی اون 7000 نیست شاید هم خرجتون بیشتر از 7000 دلار بشه
سلام
دو تا پاسخ بالاتر در مورد bmp توضیح دادم
در مورد فایل موجود و فایل جدید چون قراره که توی یک شاخه فقط یه فایل هم نام باشه avr-dos خودش موقع تولید فایل سرشماری لازم رو میکنه شما نباید کاری بکنید
فقط append برای فایل موجود بکار میره یعنی فایلی که قبلا بوده و الان قصد ویرایشش رو دارید
پس چطور می شود یه فایل که در MMC وجود دارد رو ب صورت باینری بخوانیم و به پورت میکرو ارسال کنیم؟ فرض شود که دیتا به صورت 8 بیتی به پورت میکرو ارسال می شود مثلا پورت PORTC بعد 8 LED به PORTC وصل باشد که هر وقت 8 بیت از MMC خوانده شود رو نشان بدهد. لطفا یه مثال عملی بزنید.
ممنون
محمد شرفی
ای آقا oo:
سه چهار پاسخ بالاتر یه مثال زدم
شما فایل رو باز میکنید اگه توش داده باشه که فبها اگه نه eof به شما میگه
مثلا:
Do
LineInput #ff , S ' read a line
' line input is used to read a line of text from a file
Print S ' print on terminal emulator
Loop Until Eof(#ff)<> 0
میتونید با dir قبل از باز کردنش از وجود فایل با این اسم مطمئن شید
یکم help بیسکام رو نگاه کنید خداییش تولید کننده بیسکام هم زبانش انگلیسی نیست help رو برای ما ها نوشته و قابل فهمه
برای راحتی کار یه bmp با سایز lcd و کیفیت رنگ lcd تولید کنید و توی mmc نشون بدید
میدونم با pcf8833 یا lcd nokia6610 کار میکنید برای این کار یه عکس 130 در 130 با کیفیت 8 بیتی تولید کنید توی mmc بذارید و مثلا یه جدول lookup با دستور pset روی lcd بنویسید یادتون نره شروع خوندن از بایت 54 به بعده به توضیحات wikipedia توجه کنید
دیدگاه