سلام خدمت اساتید
یه سیگنال با ساختار مشخص موجوده که میخوام اطلاعات دریافتی از این سیگنالو استخراج کنیم منتهی من وارد نیستم میخوام اگه ممکنه یه نمونه برام انجام بدید با توضیحات تا بفهمم چطور میشه اینکارو کرد
کاتالوگ کد ارسالی به زبان چینی بود که به سختی تونستم به انگلیسی برش گردونم و همینقدر اطلاعاتو ازش بدست بیارم
موضوع اینه که این سیگنال توسط وقفه INT0 شناسایی میشه در لحظه تشخیص سیگنال 32 میلی ثانیه مکث میکنه و بعد 12 بیت ارسال میشه
این 12 بیت دریافتی 3 دسته میشن 3 تای اول همیشه عدد باینری 110 هستش - 2 تای بعدی همیشه 00 یا 11 باینری هستش و نهایتا 7 بیت آخری هم عدد اصلی که ما نیاز داریم بدونیم
کریستال 8 مگاهرتز داخلی - میکرو ATmega8 استفاده کردم . گیرنده مادون قرمز Tsop 1738 هستش که 38 کیلوهرتزه و قصد دارم اعداد هر 3 دسته را روی نمایشگر ال سی دی 2*16 نشون داده بشه
یه سیگنال با ساختار مشخص موجوده که میخوام اطلاعات دریافتی از این سیگنالو استخراج کنیم منتهی من وارد نیستم میخوام اگه ممکنه یه نمونه برام انجام بدید با توضیحات تا بفهمم چطور میشه اینکارو کرد
کاتالوگ کد ارسالی به زبان چینی بود که به سختی تونستم به انگلیسی برش گردونم و همینقدر اطلاعاتو ازش بدست بیارم
موضوع اینه که این سیگنال توسط وقفه INT0 شناسایی میشه در لحظه تشخیص سیگنال 32 میلی ثانیه مکث میکنه و بعد 12 بیت ارسال میشه
این 12 بیت دریافتی 3 دسته میشن 3 تای اول همیشه عدد باینری 110 هستش - 2 تای بعدی همیشه 00 یا 11 باینری هستش و نهایتا 7 بیت آخری هم عدد اصلی که ما نیاز داریم بدونیم
کریستال 8 مگاهرتز داخلی - میکرو ATmega8 استفاده کردم . گیرنده مادون قرمز Tsop 1738 هستش که 38 کیلوهرتزه و قصد دارم اعداد هر 3 دسته را روی نمایشگر ال سی دی 2*16 نشون داده بشه
کد:
[FONT=Yekan]'****************************************************************************[/FONT][FONT=Yekan]'* Filename : IR code *[/FONT] [FONT=Yekan]'* Revision : 1.0 * [/FONT][FONT=Yekan]'* Controller : ATMEGA8 *[/FONT] [FONT=Yekan]'* Compiler : BASCOM-AVR 1.11.8.3 DEMO * [/FONT][FONT=Yekan]'* Author : Rubashka Vasiliy , Ukraine , 2007 *[/FONT] [FONT=Yekan]'* WWW : * [/FONT][FONT=Yekan]'* Mail : *[/FONT] [FONT=Yekan]'**************************************************************************** [/FONT][FONT=Yekan]$regfile = "M8def.dat" [/FONT][FONT=Yekan]$crystal = 8000000 'Internal RC oscillator 8 MHz[/FONT] [FONT=Yekan]Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 [/FONT][FONT=Yekan]Config Lcd = 16 * 2[/FONT] [FONT=Yekan]Config portd.2 = Input [/FONT][FONT=Yekan]Config Timer0 = Timer , Prescale = 256 '8000000/256=31250 Hz[/FONT] [FONT=Yekan]Config Int0 = Falling 'Interruption on Falling [/FONT][FONT=Yekan]Stop Timer0[/FONT] [FONT=Yekan]Enable Timer0 [/FONT][FONT=Yekan]Enable Int0[/FONT] [FONT=Yekan]Enable Interrupts [/FONT][FONT=Yekan]On Timer0 Tikers 'work on timer[/FONT] [FONT=Yekan]On Int0 Infrared 'work on interruption [/FONT][FONT=Yekan]Dim Tik As Word 'counter of teaks of timer[/FONT] [FONT=Yekan]Dim Byt As Byte 'counter accepted bit [/FONT][FONT=Yekan]Dim pin As Bit[/FONT] [FONT=Yekan]dim x as word 'flag of repetition [/FONT][FONT=Yekan]Cursor Off 'Switch Off cursor[/FONT] [FONT=Yekan]'################################################################################################################ [/FONT][FONT=Yekan]cls[/FONT] [FONT=Yekan]locate 1 , 1 [/FONT][FONT=Yekan]lcd "test"[/FONT] [FONT=Yekan]waitms 1500 [/FONT] [FONT=Yekan]cls [/FONT][FONT=Yekan]Do 'Main cycle[/FONT] [FONT=Yekan]Cls 'Clean LCD [/FONT][FONT=Yekan]locate 2 , 1[/FONT] [FONT=Yekan]Lcd x [/FONT][FONT=Yekan]Waitms 500[/FONT] [FONT=Yekan]Loop [/FONT][FONT=Yekan]End 'End of main cycle[/FONT] [FONT=Yekan]'################################################################################################################ [/FONT][FONT=Yekan]Tikers: 'work on timer[/FONT] [FONT=Yekan] Timer0 = 253 '31250/(256-253)=10416,66 Hz (96 een) ~ 0.1 ms [/FONT][FONT=Yekan] Incr Tik[/FONT] [FONT=Yekan] pin=portd.2 [/FONT][FONT=Yekan] if pin=0 then[/FONT] [FONT=Yekan] pin=1 [/FONT][FONT=Yekan] else[/FONT] [FONT=Yekan] pin=0 [/FONT][FONT=Yekan] endif[/FONT] [FONT=Yekan] Stop Timer0 [/FONT][FONT=Yekan] Return[/FONT] [FONT=Yekan]'################################################################################################################ [/FONT] [FONT=Yekan]Infrared: 'work on interruption [/FONT][FONT=Yekan]Start Timer0[/FONT] [FONT=Yekan]if Byt <= 12 then [/FONT][FONT=Yekan] Incr Byt[/FONT] [FONT=Yekan] Shift x , Left [/FONT][FONT=Yekan] x = x + pin[/FONT] [FONT=Yekan]else [/FONT][FONT=Yekan]End If[/FONT] [FONT=Yekan]return[/FONT]
دیدگاه