سلام من یک برنامه با کدویژن نوشتم نمیدونم چه جوری اشکالشو بفهمم و متوجه بشم درسته. لطفا کمکم کنید.
اطلاعیه
Collapse
No announcement yet.
کمک در برنامه نویسی
Collapse
X
-
پاسخ : کمک در برنامه نویسی
برنامه+شماتیک مدار=کمک... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآهاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآها، خاطره همتآهاى بلند را از یادها محو کرده است. (نهجآالبلاغه، خطبه211)
امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)
-
پاسخ : کمک در برنامه نویسی
کد:#include <mega32.h> #include <spi_seg.h> #include <delay.h> #define sens1 PINA0 #define sens2 PINA1 #define sens3 PINA2 #define sens4 PINA3 #define key1 PINA5 #define key2 PINA6 #define key3 PINA7 #define en PORTB.0 #define puls PORTB.2 #define motor PORTB.3 #define error PORTA.4 char debuncing(char key); void shomaresh(void); void shomaresh2(void); volatile unsigned int conter=0,compar=0; void main (char key){ char deb; PORTA=0x00; DDRA=0x10; PORTB=0x10; DDRB=0xed; DDRD=0xff; TCCR1A=0x00; TCCR1B=0x00; TCNT1=0x00; OCR1A=0x00; OCR1B=0X00; TCCR2=(1<<WGM12)|(1<<CS22)|(1<<CS21)|(1<<CS20); OCR2=0x07; TIMSK=(1<<OCIE2); spi_init(); #asm ("sei") ; while (1) { if(key1==1){ deb=debuncing(key1); if(deb){ compar=compar+10; if(compar==100); compar=0; } } if(key2==1){ deb=debuncing(key2); if(deb){ compar=compar+100; if(compar=1000); compar=0; } } if(key3==1){ deb=debuncing(key3); if(deb){ compar=0; } } if (sens1==1){ if(compar==0) shomaresh(); else shomaresh2(); } else motor=0; if (sens4==0) conter=0; } } interrupt [TIM1_COMPA] void timer1_compar_isr(void){ motor=0; } interrupt [TIM2_COMP] void timer2_comp_isr(void){ spi_send(conter,compar); } char debuncing(char key){ int dad=1; if(key & dad){ return(1); dad=0; } else return(0); if(dad|key ==0) dad=1; } void shomaresh (void){ motor=1; puls=sens2+sens3; TCCR1B=(1<<CS12)|(1<<CS11); conter=TCNT1; if ((sens2| sens3)==1){ motor=0; error=1; TCCR1B=(0<<CS12)|(0<<CS11); } } void shomaresh2(void){ motor=1; puls=sens2+sens3; TCCR1B=(1<<CS12)|(1<<CS11); OCR1A=compar; TCCR1B=(1<<WGM12); conter=TCNT1; if (sens2 ^ sens3){ motor=0; error=1; TCCR1B=(0<<CS12)|(0<<CS11); } }
دیدگاه
-
پاسخ : کمک در برنامه نویسی
عکسش رو باید یه جا پلود کنی
لینکش رو بذاری... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآهاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآها، خاطره همتآهاى بلند را از یادها محو کرده است. (نهجآالبلاغه، خطبه211)
امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)
دیدگاه
-
پاسخ : کمک در برنامه نویسی
اونها هم پلود میکنن. فقط بین گزینه های بالای صورتکها یکی هست که باید لینک عکس رو بذاری اونجا تا نشونش بده.زیر دکمه B هست. همچنین یک گزینه هم داره برای کد نویسی که کدها رو میذاری اونجا تا درست نشونش بده.
کد:#include <mega32.h> #include <spi_seg.h> #include <delay.h> #define sens1 PINA0 #define sens2 PINA1 #define sens3 PINA2 #define sens4 PINA3 #define key1 PINA5 #define key2 PINA6 #define key3 PINA7 #define en PORTB.0 #define puls PORTB.2 #define motor PORTB.3 #define error PORTA.4 char debuncing(char key); void shomaresh(void); void shomaresh2(void); volatile unsigned int conter=0,compar=0; void main (char key){ char deb; PORTA=0x00; DDRA=0x10; PORTB=0x10; DDRB=0xed; DDRD=0xff; TCCR1A=0x00; TCCR1B=0x00; TCNT1=0x00; OCR1A=0x00; OCR1B=0X00; TCCR2=(1<<WGM12)|(1<<CS22)|(1<<CS21)|(1<<CS20); OCR2=0x07; TIMSK=(1<<OCIE2); spi_init(); #asm ("sei") ; while (1) { if(key1==1){ deb=debuncing(key1); if(deb){ compar=compar+10; if(compar==100); compar=0; } } if(key2==1){ deb=debuncing(key2); if(deb){ compar=compar+100; if(compar=1000); compar=0; } } if(key3==1){ deb=debuncing(key3); if(deb){ compar=0; } } if (sens1==1){ if(compar==0) shomaresh(); else shomaresh2(); } else motor=0; if (sens4==0) conter=0; } } interrupt [TIM1_COMPA] void timer1_compar_isr(void){ motor=0; } interrupt [TIM2_COMP] void timer2_comp_isr(void){ spi_send(conter,compar); } char debuncing(char key){ int dad=1; if(key & dad){ return(1); dad=0; } else return(0); if(dad|key ==0) dad=1; } void shomaresh (void){ motor=1; puls=sens2+sens3; TCCR1B=(1<<CS12)|(1<<CS11); conter=TCNT1; if ((sens2| sens3)==1){ motor=0; error=1; TCCR1B=(0<<CS12)|(0<<CS11); } } void shomaresh2(void){ motor=1; puls=sens2+sens3; TCCR1B=(1<<CS12)|(1<<CS11); OCR1A=compar; TCCR1B=(1<<WGM12); conter=TCNT1; if (sens2 ^ sens3){ motor=0; error=1; TCCR1B=(0<<CS12)|(0<<CS11); } }
کامپایلش ارور میده؟؟؟؟
اجرا نمیشه؟؟؟... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآهاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآها، خاطره همتآهاى بلند را از یادها محو کرده است. (نهجآالبلاغه، خطبه211)
امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)
دیدگاه
-
پاسخ : کمک در برنامه نویسی
4تا سنسور داریم که تو شماتیکش به vcc وصل کردم. سه تا کلید داریم که با زدن هر کلید به compar اضافه میشه. با ارتباط spi با 595 سگمنتا عدد compar و conter نشون میدن. اگه compar غیر صفر باشه تایمر کانتر یک تو مد ctc میشمره و کلا تایمر کانتر با پالس خارجی که and دو تا سنسورها هست ایجاد شده.
دوستان ممنون میشم کمکم کنید.
دیدگاه
-
پاسخ : کمک در برنامه نویسی
شما فایل پروتئوس رو هم بذار.
چون این عکست یکم نامعلومه.
باید هردو رو چک کنی.... و (بدانید) گرفتن تصمیمهاى محکم (براى رسیدن به اهداف بزرگ) با خوش گذرانى و سفرهآهاى رنگین سازگار نیست و چه بسیار که خواب شبانه تصمیمهاى محکم روز را از میان برده و تاریکیآها، خاطره همتآهاى بلند را از یادها محو کرده است. (نهجآالبلاغه، خطبه211)
امام علی (ع):کسی که به وقت یاری رهبرش در خواب باشد، با لگد دشمنش بیدار می شود (غررالحکم،ص 422)
دیدگاه
-
پاسخ : کمک در برنامه نویسی
سلام
خوب سه تا خطا که کدویزن از برنامه میگیره:
کد:#include <spi_seg.h>
به دنبال این هدر این خطوط هم خطا ایجاد میکنند:
کد:spi_init();
کد:spi_send(conter,compar);
دیدگاه
دیدگاه