(۱۸-فروردین-۱۳۹۲, ۱۹:۳۵:۵۰)live_1389 نوشته است: [ -> ]اگه میگین با سیم درست کار می کنه خب مشکل از ماژولاست، یا درست بسته نشدن و یا اینکه سالم نیستن...
با سه تا ماؤول امتحان کردم
کار نمیکند
اگر شما لطف کنید همون برنامه کمک من کنید که لازم دارم با سیم کار کنه دوباره ماؤول میخرم
مطمئنید که فرکانس کاری ماژولهاتون یکی هستش؟
همچنین مقدار باوود های برنامه ...
برای میکرو که فرکانسهای داخلیشو دستکاری نکردین (از قسمت فیوز بیتها) ؟
(۱۹-فروردین-۱۳۹۲, ۱۷:۱۴:۴۷)رسول نوشته است: [ -> ]مطمئنید که فرکانس کاری ماژولهاتون یکی هستش؟
همچنین مقدار باوود های برنامه ...
برای میکرو که فرکانسهای داخلیشو دستکاری نکردین (از قسمت فیوز بیتها) ؟
ممنون
فیوز بیت ها تنظیم بوده برای کریستال خارجی
درست شد
حالا نیاز به همت برای برنامه کنترل دارم
ولا بیکار بودم گفتم یه چیزی بنویسم شاید به کارتون اومد
فرستنده:
کد php:
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 9600
Config Portb = Input
Main:
Dim A As Byte , Ch As Byte
Dim S As Byte
For A = 1 To 25
Print &H55
Next A
Do
If Pinb.0 = 1 Then
Ch = 1
Elseif Pinb.1 = 1 Then
Ch = 2
Elseif Pinb.2 = 1 Then
Ch = 3
Elseif Pinb.3 = 1 Then
Ch = 4
Else
Ch = 0
End If
Select Case Ch
Case 1
S = 1
For A = 1 To 15
Printbin S
Next A
Case 2
S = 2
For A = 1 To 15
Printbin S
Next A
Case 3
For A = 1 To 15
S = 3
Printbin S
Next A
Print S
Case 4
s=4
For A = 1 To 15
Printbin S
Next A
End Select
Loop
End 'end program
گیرنده:
کد php:
$regfile = "m16def.dat"
$crystal = 8000000
$baud = 9600
Config Portb = Output
Dim S As Byte
Main:
Do
Inputbin S
Select Case S
Case 1:
Set Pinb.0
Inputbin S
Case 2:
Set Pinb.1
Inputbin S
Case 3:
Set Pinb.2
Inputbin S
Case 4:
Set Pinb.3
Inputbin S
End Select
Loop
End
تو پروتئوس که جواب داد احتمالا باید با ماژولام جواب بده
البته اگه از اینتراپت استفاده کنید سرعتش یه نمور بیشتر میشه این یکم لگش برطرف میشه
داداشی بیا اینم برنامه تست شده.
امیدوارم بتونه کمکت کنه.
برنامه فرستنده :
کد:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
Config Portb = Input
Do
If Pinb.0 = 1 Then
Bitwait Pinb.0 , Reset
Printbin 15
Waitms 50
End If
If Pinb.2 = 1 Then
Bitwait Pinb.2 , Reset
Printbin 25
Waitms 50
End If
If Pinb.4 = 1 Then
Bitwait Pinb.4 , Reset
Printbin 35
Waitms 50
End If
If Pinb.1 = 1 Then
Bitwait Pinb.1 , Reset
Printbin 45
Waitms 50
End If
If Pinb.3 = 1 Then
Bitwait Pinb.3 , Reset
Printbin 55
Waitms 50
End If
If Pinb.5 = 1 Then
Bitwait Pinb.5 , Reset
Printbin 65
Waitms 50
End If
Loop
برنامه گیرنده :
کد:
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 9600
Config Portb = Output
Dim A As Byte
Enable Interrupts
Enable Urxc
On Urxc Uart
Do
Select Case A:
Case 15:
A = 0
Portb.0 = 1
Case 25:
A = 0
Portb.2 = 1
Case 35:
A = 0
Portb.4 = 1
Case 45:
A = 0
Portb.0 = 0
Case 55:
A = 0
Portb.2 = 0
Case 65:
A = 0
Portb.4 = 0
End Select
Loop
Uart:
A = Waitkey()
Return
شبیه ساز و سورس ها پیوست شده اند.
سلام
ای وای دوستان به دادم برسید،قبلاً با یه همچین کدی خوب جواب گرفته بودم، اما الان...
گیرنده همینطور برا خودش کد میگیره و ال ای دی رو روشن میکنه حتی اگه کدی براش نفرستم، انگار که دارم میفرستم. مشکلش چیه بنظرتون؟
یک فرستنده گیرنده دو کانال می خوام درست کنم.
فرستنده:
کد:
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600
Dim C1 As Byte
Dim A As Integer
Config Portb.0 = Output
Config Portb.2 = Input
Config Portb.1 = Input
Main:
Do
If Pinb.1 = 1 Then Goto Chan1
If Pinb.2 = 1 Then Goto Chan2
Loop
Chan1:
C1 = 123
For A = 1 To 5
Printbin C1
Waitms 20
Next A
Set Portb.0
Waitms 100
Reset Portb.0
Waitms 100
Goto Main
Chan2:
C1 = 213
For A = 1 To 5
Printbin C1
Waitms 20
Next A
Set Portb.0
Waitms 100
Reset Portb.0
Waitms 100
Goto Main
End
'end program
گیرنده:
کد:
$regfile = "m8def.dat"
$crystal = 1000000
$baud = 9600
Dim C1 As Byte
Config Portb.3 = Output
Config Portb.2 = Output
Config Portb.0 = Output
Config Portd.7 = Output
On Urxc In1
Enable Urxc
Enable Interrupts
Main:
Do
If C1 = 123 Then Goto Chan1
If C1 = 213 Then Goto Chan2
Loop
Chan1:
Set Portb.0
Set Portb.2
Waitms 200
Reset Portb.0
Reset Portb.2
Waitms 200
C1 = 0
Goto Main
Chan2:
Set Portd.7
Set Portb.3
Waitms 200
Reset Portd.7
Reset Portb.3
Waitms 200
C1 = 0
Goto Main
End
In1:
Inputbin C1
Return
'end program
اون کد حسین جان هم تست کردم اما باز با اینکه با فرستنده چیزی براش نفرستادم گیرنده یه کد گرفت و ال ای دی روشن شد! 3 ساعتی هست درگیرشم، دیگه دارم
ممنون.
این کلیپ کوتاه نشون میده که ...
[
attachment=9830]
یه چیزی یادم رفت بگم، داخل کلیپ فقط یکی از گیرنده هاست، اون یکی هم همینطوره، یعنی برا خودش کد میگیره و روشن خاموش میشه.
سلام
دوستان کسی نظری نداره که چرا مدار گیرنده با اینکه فرستنده ایی وجود نداره اما این قسمت از کد رو انجام میده، گفتم درصورتی بیاد تواین قسمت که کد درست رو بگیره اما فرستنده ای نیست که کد رو بفرسته پس چرا ... ؟
مگه نویز چقدر میتونه تاثیر بزاره؟ فکر نکنم که نویزی وجود داشته باشه!
کد:
Chan1:
Set Portb.0
Set Portb.2
Waitms 200
Reset Portb.0
Reset Portb.2
Waitms 200
C1 = 0
Goto Main
سلام
خب کچل شدم و هنوز به نتیجه نرسیدم :-)
در حال حاضر مشکل من فقط با گیرندهاس که دارن الکی برا خودشون کد می گیرن و اون ال ای دی و رله رو فعال میکنن. البته شبیه سازی درسته اما در عمل...
[
attachment=9899]
یادم رفتم بگم فایل بالا کد و شبیه سازیه...
تاپیک کامل نخوندم اما بگم مازولایی که گفین کلا از هوا نویز میگرن.
یه دفه یه کانال روشن میشه خاموش میشه.
یادمه قبلنا با تایمر مشکلی که گفین تا حدودی برطرف شد.
خروجی مدام هی ریست کن مثلا هر چند میلی ثانیه با تایمر دستور بده خروجی صفر شه.
آخه فقط با ماژول نیست! اول اینکه وقتی فرستنده هم نباشه باز گیرنده ها مشغول کد گرفتن هستن. بعد بدون ماژول یعنی با سیم امتحان کردم دقیقاً مثل شبیه سازی اما باز گیرنده ها بدون اینکه با فرستنده کدی رو بفرستم شروع به گرفتن کد می کنن.!
شما از کریستال خارجی هم استفاده می کنید؟