آقا عباس بنظرت مشکل این برنامه چیه که قبل اینکه حتی به دستور
برنامه میره به ؟lable l
کد:
$regfile = "m32def.dat" : $crystal = 8000000
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0 : Config Lcd = 20 * 4
Config Int0 = Rising
Config Pind.2 = Input
On Int0 L
Enable Interrupts : Enable Int0
Dim A As Word
Cursor Off
Lcd "h.unique"
Waitms 500
Cls
Do
Incr A
Locate 1 , 1 : Lcd A ; " " : Locate 2 , 1 : Lcd " "
Waitms 500
Loop
End
'end program
L:
Locate 2 , 1 : Lcd "Enable Int0"
Wait 1
Return
ولی بعده اینکه از lable l اومد بیرون دیگه همه چی ok هستش
شما ترتیب فرمان هارو دارین جا به جا میزنید که این اتفاق میوفته
باید اینجوری باشه
اول کانفیگ اینتراپت
بعدا بگیم روی اینتراپت کدوم لیبل هست
کد php:
Config Int2 = Rising
Enable Interrupts
Enable Int2
On Int2 L
ممنون آقا عباس.
اینوامتحان کردم اما مشکلم حل نشد.
کلا با int0,int1 مشکل داره.
همون برنامه رو نوشتم بجای int0
int2 رو گذاشتم مشکلم حل شد. یعنی:
کد:
$regfile = "m32def.dat" : $crystal = 8000000
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.0 : Config Lcd = 20 * 4
Config Int2 = Rising
On Int2 L
Enable Interrupts : Enable Int2
Dim A As Long
Cursor Off
Lcd "h.unique"
Waitms 500
Cls
Do
Incr A
Locate 1 , 1 : Lcd A ; " " : Locate 2 , 1 : Lcd " "
Waitms 500
Loop
End
'end program
L:
Locate 2 , 1 : Lcd "Enable Int0"
Wait 1
Return
ببخشید یه سوال خیلی ساده.
جریان این کریستال ساعت چیه؟و چطور باید از اون استفاده کرد؟
و برای ایجاد زمان دقیق مثلا ساخت یک ساعت باید چیکار کرد؟
آقا من کدویژن بلد نیستم اما میخوام خودم یادش بگیرم الان برنامه رو نوشتم نمیونم کجاش ایراد داره که اصلا جواب نمیده.
پایه a.0 یک میلیونیم ثانیه 0 میشه و بعد نه آبی(0) و نه قرمز(1) میشه بلکه فقط سیاه میشه.ولی با بیسکام این برنامه رو مینویسم و با همین قطعات چیک میکنم مشکلی نداره.لطفا کمک کنید.
این برنامه:
کد:
#include <mega32.h>
#include <delay.h>
void main(void)
{
while(1){
PORTA.0=0;
delay_ms(200);
PORTA.0=1;
}
}
اینم عکس از سیمولیشن:
اگه دقت کنی یه فرمان تاخیر کم داره
کد:
#include <mega32.h>
#include <delay.h>
void main(void)
{
while(1){
PORTA.0=0;
delay_ms(200);
PORTA.0=1;
delay_ms(200);
}
}
سلام ببخشید که سوالم رو توی این تاپیک مطرح میکنم.چون که تازه واردم ونمیتونم تاپیک جدید ایجاد کنم هنوز
من رو ییک پروزه ربات امدادگر کار میکنم که وقتی قوانینش رو خوندم.از نحوهی ارتباط ربات با اوپراتور وارسال اطلاعات اینا سر در نیوردم.
چون اونجا گفته بود باید از فرکانس5گیگاهرتز استفاده کنید.
من گیج شدم و هرچی هم توی اینترنت گشت زدم نتوستم رادیو کنترل 5گیگاهرتز پیدا کنم بعد فهمیدم که باید انگار از رو تر ها{مودم}وایرلس 5گیگاهرتز استفاده کرد.حالا اگر من این روتر رو گرفتم چجوری دیتا ها را روی اون انتقال بدم وچجوری دیتا هارو بگیرم.ا؟کلا اگر میشه یه اطلاعاتی به من بدید ممنون میشم
ماژول های آماده ای برای این کار ها هستن که توی این فرکانس ها کار میکنن 2.4 3.6 5 گیگا یکم راه اندازیشون مشکله اما شدنیه
معمولا با میکرو های AVR نمیشه چون اون ماژول ها 16 بیتی هستن وباید از ARM یا XMEGA استفاده کنید
خیلی ممنون شما اسمی نداری از این ماژول؟یعنی اسمش چیه؟از کجا ها میشه گرفت.؟سایتی هم هست که بفروشدش؟
ای بابامنم زیاد وارد نیستم با میکرو کار کنم .ولی یجوری راش مینازیم دیگه.
(۲۱-مرداد-۱۳۹۱, ۱۶:۲۱:۴۵)abbasalifix نوشته است: [ -> ]اگه دقت کنی یه فرمان تاخیر کم داره
کد:
#include <mega32.h>
#include <delay.h>
void main(void)
{
while(1){
PORTA.0=0;
delay_ms(200);
PORTA.0=1;
delay_ms(200);
}
}
دست گلت درد نکنه آقا عباس.
این کارو کردم اما led رو نتونست روشن کنه.
وقتی این دستور رو بهش اصافه کردم مشکلش حل شد.
نقل قول: DDRA=1;
بابا بیسکام کی از این چیزا میخواست
و در نهایت برنامه به شکل زیر شد:
کد:
#include <mega32.h>
#include <delay.h>
void main(void)
{
while(1){
DDRA=1;
PORTA.0=0;
delay_ms(200);
PORTA.0=1;
delay_ms(200);
}
}
دیروز دیدم ها وبی نگفم یکم زورم اومد دیر دیدم
حالا همون مقاومت مدارتو هم عوض کن یه 330 بزار
مجددا سلام
1.من این برنامه رو به زبان بیسیک نوشتم رو نگاه کنید و بعد لطف کنید و بم بگین که تو C اینو چطور باید بنویسم.(البته خودم مقداری از C رو نوشتم ولی همونطور که گفتم C رو خوب بلد نیسم.
بیسیک:
کد:
$regfile = "m32def.dat" : $crystal = 2000000
Config Lcdpin = Pin , Db7 = Portc.7 , Db6 = Portc.6 , Db5 = Portc.5 , Db4 = Portc.4 , E = Portc.2 , Rs = Portc.0 : Config Lcd = 20 * 4
Dim I As Long
Cursor Off
Do
Locate 1 , 1 : Lcd I ; " ta" : Waitms 200 : Incr I
Loop
End 'end program
C:
کد:
#include <mega32.h>
#include <delay.h>
#include <stdio.h>
#include <lcd.h>
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
char i;
void main(void){
while(1){
lcd_init(20);
lcd_clear ();
lcd_gotoxy(0,0);
lcd_putchar(i);
delay_ms(200);
i++;
}
}
2.چطور این کد 0x15 رو محاسبه میکنند؟
3.تو c مثله بیسیک میشه چندتا دستور مختلف رو تو یک خط نوشط؟
مثل:
کد:
Locate 1 , 1 : Lcd I ; " ta" : Waitms 200 : Incr I
که با >>> : <<< میشه چند دستور رو تو یک خط نوشت.
4.اون دستور:
چیه که اگه نباشه برنامه کامپایل نمیشه؟
4.چرا سرعت lcd با برنامه ای که تو کدویژن مینویسی از برنامه ای که تو بیسکام مینویسی پایین تره؟
5.یه سوال خیلی ابتدایی pull-up همون مقاومتی هستش که به vcc وصل میشه و pull-down به gnd؟