سلام
من یک تابلو روان گردان حرفه ای دارم میسازم قبلا ساده تر از اینو ساخته بودم
ولی بدلیل کمبود سواد از شما اساتید کمک می خواهم
1.موتورمو عوض کردم موتور جانسون سشواری را استفاده کردم ولیrpm اونو
نمیدونم تو برگه اطلاعاتش اونقدر موتور ها شبیه بودن که نتونستم تشخیص بدم
تو سایت هست با قیمت4500تومان اگه کسی میدونه بگه http://eshop.eca.ir/product_info.php...oducts_id=1484
2.علت اینکه پروگرامر من بعد از چند بار پروگرام میکرو رو میسوزونه چیه ولی وقتی تغذیه رابه میکرو میدم هرپایه 0.5ولت ولتاژ داره جریان مجاز میکرو چقدر است
3.من یک تابع برای تابلو روان گردان نوشتم ولی کدویژن ارور میده:Error:
Propeller Display.c(87): storage modifier not allowed in this context
من از مگا8 استفاده میکنم لطفا کمکم کنید من تو برنامه نویسی با cمتوسطم
که str رشته ورودی replayتکرار درثانیه lineتعدادپیکسل در یک دورline displayتعدادپیکسل نمایش(رشتهstr)
cزمان تاخیر درزمان شروع نمایش dتعدادشیفت در ثانیه delayتاخیر نمایش یک پیکسل در دور وrpsتعداد دورموتور در ثانیه است.
وifهای آخربرای بالانس کردن برای رسیدن به مبنا شروع جهت اجرای دستورات بدون هنگ کردن تابلوزیرا کل برنامه بر اساس یک مبنا شروع نوشته شده تا هر دستور نسبت به آن شروع شود
که میشه با اپتوکانتر سادش کردبهint0وصل شود:به جای
من یک تابلو روان گردان حرفه ای دارم میسازم قبلا ساده تر از اینو ساخته بودم
ولی بدلیل کمبود سواد از شما اساتید کمک می خواهم
1.موتورمو عوض کردم موتور جانسون سشواری را استفاده کردم ولیrpm اونو
نمیدونم تو برگه اطلاعاتش اونقدر موتور ها شبیه بودن که نتونستم تشخیص بدم
تو سایت هست با قیمت4500تومان اگه کسی میدونه بگه http://eshop.eca.ir/product_info.php...oducts_id=1484
2.علت اینکه پروگرامر من بعد از چند بار پروگرام میکرو رو میسوزونه چیه ولی وقتی تغذیه رابه میکرو میدم هرپایه 0.5ولت ولتاژ داره جریان مجاز میکرو چقدر است
3.من یک تابع برای تابلو روان گردان نوشتم ولی کدویژن ارور میده:Error:
Propeller Display.c(87): storage modifier not allowed in this context
من از مگا8 استفاده میکنم لطفا کمکم کنید من تو برنامه نویسی با cمتوسطم
کد:
[font=arial][left] /***************************************************** Project : Propeller Display Version : 3.00.00 Date : 2013/03/22 Author : amir masoud khademi Chip type : ATmega8 Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega8.h> #include <delay.h> #include <stdlib.h> int i; //External ineterrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void) { i++; } flash unsigned char program[] ={ \ 0x30, \ // ..@@.... 0x48, \ // .@..@... 0x28, \ // ..@.@... 0x78, \ // .@@@@... 0x00, \ // ........ 0x78, \ // .@@@@... 0x08, \ // ....@... 0x30, \ // ..@@.... 0x08, \ // ....@... 0x70, \ // .@@@.... 0x00, \ // ........ 0x48, \ // .@..@... 0x7A, \ // .@@@@.@. 0x40, \ // .@...... 0x00, \ // ........ 0x78, \ // .@@@@... 0x10, \ // ...@.... 0x08, \ // ....@... 0x10, \ // ...@.... 0x00, \ // ........ 0x00, \ // ........ 0x00, \ // ........ 0x00, \ // ........ 0x00, \ // ........ 0x00, \ // ........ 0x7E, \ // .@@@@@@. 0x10, \ // ...@.... 0x10, \ // ...@.... 0x68, \ // .@@.@... 0x00, \ // ........ 0x7E, \ // .@@@@@@. 0x08, \ // ....@... 0x08, \ // ....@... 0x70, \ // .@@@.... 0x00, \ // ........ 0x30, \ // ..@@.... 0x48, \ // .@..@... 0x28, \ // ..@.@... 0x78, \ // .@@@@... 0x00, \ // ........ 0x30, \ // ..@@.... 0x48, \ // .@..@... 0x28, \ // ..@.@... 0x7E, \ // .@@@@@@. 0x00, \ // ........ 0x30, \ // ..@@.... 0x68, \ // .@@.@... 0x58, \ // .@.@@... 0x50, \ // .@.@.... 0x00, \ // ........ 0x78, \ // .@@@@... 0x08, \ // ....@... 0x30, \ // ..@@.... 0x08, \ // ....@... 0x70, \ // .@@@.... 0x00, \ // ........ 0x48, \ // .@..@... 0x7A, \ // .@@@@.@. 0x40, \ // .@...... 0x00 \ // ........ }; void propeller (flash unsigned char str,int replay,int line,int line display,int c,int d,int delay,int rps){ if(i!=0){ int row num,o,p,q,w,x,y,z; delay_us(d*delay); unsigned int a; for(w=0;w<=replay;w++){ if(q==1){ delay_us(c*delay); } else { q++; l=c; } for(y=0;y<=line display;y++){ DDRC=0xFF; delay_us(delay); PORTC=0x00; } z=line display; p=line; o=d+c-l; if(z<=p){ a=z; a-=p; a=abs(a); delay_us((o+a)*delay); } if(z<=2p){ a=z; a-=2p; a=abs(a); delay_us((o+a)*delay); } if(z<=3p){ a=z; a-=3p; a=abs(a); delay_us((o+a)*delay); } if(z<=4p){ a=z; a-=4p; a=abs(a); delay_us((o+a)*delay); } if(z<=5p){ a=z; a-=5p; a=abs(a); delay_us((o+a)*delay); } } } } void main (void){ DDRC=0xFF; PORTC=0x00; //IC NOT PIN LED=CAT // External Interrupt(s) initialization // INT0: On // INT0 Mode: Falling Edge // INT1: Off GICR|=0x40; MCUCR=0x02; GIFR=0x40; MCUCSR=0x00; //Global enable interrupts #asm("sei") while(1){ } } [/left][/font]
cزمان تاخیر درزمان شروع نمایش dتعدادشیفت در ثانیه delayتاخیر نمایش یک پیکسل در دور وrpsتعداد دورموتور در ثانیه است.
وifهای آخربرای بالانس کردن برای رسیدن به مبنا شروع جهت اجرای دستورات بدون هنگ کردن تابلوزیرا کل برنامه بر اساس یک مبنا شروع نوشته شده تا هر دستور نسبت به آن شروع شود
که میشه با اپتوکانتر سادش کردبهint0وصل شود:به جای
if(i!=0){}
دراول برنامهکد:
if(i++){}
دیدگاه