ايران ويج

نسخه‌ی کامل: فاصله سنج اولتراسونیک
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام.
دوستان عزیز من برای پروژه ام دادم بیرون برام فاصله سنج اولتراسونیک ساختند اونجا برای رو دیوار تست کرد و به خوبی فاصله رو زد ولی حالا که اوردم خونه فاصله رو نمی زنه و همش اعدادش تغییر می کنه آیا حتمآ باید روش خاصی داشته باشه تا برام بزنه؟
در ضمن من سورس برنامه اش رو گرفتم با کدویژن نوشته شده و تو دانشگاه هم به ما فقط کدویژن یاد دادن اونم به صورت مختصر که باید بگم چیز درست و حسابی یاد نگرفتیم و الان که این برنامه جلوم هست نمی دونم چی نوشته شده آیا کسی می تونه این برنامه رو خط به خط توضیح بده چیز زیادی نیست من باید برای دفاعیه توضیح بدم اگر می تونید برنامه رو بزارم و برام توضیح بدید.
سلام...
تو مدارت یه نگاه کن ببین قطعی بوجود نیومده...
کریستال خارجی که گذاشته سالمه...
یه عکس از مدارت بزار !!!!
باید تو خونه هم جواب بده.. شاید تو خونه که پروگرامش کردی فیوز بیتاش رو دستکاری کردی...
اگرم که هکیون طور که اوردی زدی تو برق و خراب بود.. که احتمالا قطعی داره یا کریستالشه...
من به بسکام میتونیم توضیح بدم ولی کدویژن نه..
(۳۰-آذر-۱۳۸۹, ۰۰:۳۴:۱۹)ebka نوشته است: [ -> ]سلام...
تو مدارت یه نگاه کن ببین قطعی بوجود نیومده...
کریستال خارجی که گذاشته سالمه...
یه عکس از مدارت بزار !!!!
باید تو خونه هم جواب بده.. شاید تو خونه که پروگرامش کردی فیوز بیتاش رو دستکاری کردی...
اگرم که هکیون طور که اوردی زدی تو برق و خراب بود.. که احتمالا قطعی داره یا کریستالشه...
من به بسکام میتونیم توضیح بدم ولی کدویژن نه..

دوست عزیز مدار مشکل پیدا کرده بود مثل اینکه قطعی داشت دادم به خودش درستش کنه فق می مونه برنامه اش که یکی بهم توضیح بدهاین برنامه اش هست:
#include <mega8.h>
#include <delay.h>
#include <stdio.h>

unsigned char distanc;
char flag;
char ovf=0;
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
#define nop #asm("nop")

void send_sound()
{
char i;
for(i=0;i<20;i++)
{
PORTC=0b0000111;
delay_us(11);nop;nop;nop;
PORTC=0b0111000;
delay_us(11);nop;nop;nop;
}
PORTC=0b0000000;
}

void main(void)
{
PORTB=0x00;
DDRB=0xFF;

PORTC=0x00;
DDRC=0b1111111;

PORTD=0x00;
DDRD=0x01;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 1000.000 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: On
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x02;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;


// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: rising Edge
// INT1: Off
// INT2: Off
GICR|=0x40;
MCUCR=0x02;
MCUCSR=0x00;
GIFR=0x40;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
//while(1)send_sound();
// LCD module initialization
lcd_init(16);


lcd_putsf("Ultrasonic");
delay_ms(1000);
lcd_clear();



while (1)
{
unsigned long int sum;
char i;
sum=0;

for(i=0;i<5;i++)
{
flag=1;
while(flag)
{
PORTD.0=1; //disabling reciver
#asm("cli")
TCCR1B=0x00;//timer off
TCNT1 =0x00;//meghdare timer dar in register mibashad

send_sound();
TCCR1B=0x02; ///geting time(on timer)

delay_ms(1);//baraye door shodane seda 1ms sabr mikonad
PORTD.0=0;//faal kardane reciver

#asm("sei") //rah andazie intrrupt
delay_ms(20);//montazere interrupt baraye 6 metr raftobargasht seda mimanad
}
TCCR1B=0x00; //timer khanmoosh
sum+=distanc;//jam kardane faseleha ba ham baraye miangin giri
}
distanc=sum/5;//miangin

lcd_clear();

if(distanc>500)lcd_putsf("Out Of Range");

lcd_gotoxy(0,0);
lcd_putchar((distanc%10000)/1000+'0');
lcd_putchar((distanc%1000)/100+'0');
lcd_putchar(',');
lcd_putchar((distanc%100)/10+'0');
lcd_putchar((distanc%10)/1+'0');
lcd_putsf(" cm");
};
}

// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
distanc=TCNT1/57.029;
#asm("cli")
flag=0;
}
کسی نیست کمک کنه!!!!!!!
من بسکام بلدم
شانس من همه با بسکام بلدن یکی نیست یعنی با codevision بلد باشه؟
(۰۲-دى-۱۳۸۹, ۱۶:۳۱:۱۱)o_omid نوشته است: [ -> ]شانس من همه با بسکام بلدن یکی نیست یعنی با codevision بلد باشه؟
به نظر من برو یه کتاب اموزش ای وی ار با کد ویژن بگیر و...
تنها راهش اینه...
کدویژن اگه مثل بسکام help داشته باشه که میتونی بفهمی...

اینجا یه کتاب در مورد AVRبه زبان Cهست
آموزش AVRبه زبان C
ولی کلا این CODEVISION خیلی مسخرس
الکی گندش کردن
دوستان من اگه دنبال کتاب بودم باید تا یک مدت طولانی می نشستم و این کتاب رو مطالعه می کردم و برام دردسر داشت چون وقت کافی ندارم برای انجام چنین کاری در هر صورت ممنون.
بازم شاید کسی پیدا بشه کمکم کنه.
ممکن سنسورات مشکل پیدا کرده باشند یا چیز که میخوای فاصلش بسنجی اشعه رو بد منعکس بکنه ... شاید ...
میشه شماتیکشم بزاری ببینیم که ببینیم چی کار کرده؟
صفحه‌ها: 1 2