| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| RUN Light http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=6098 |
Страница 1 от 1 |
| Автор: | TheWizard [ Чет Сеп 11, 2008 11:30 pm ] |
| Заглавие: | RUN Light |
Търса сорсче на С за бягащи светлинки.... :) |
|
| Автор: | ToHu [ Пет Сеп 12, 2008 12:05 am ] |
| Заглавие: | |
LIST P=PIC12C508a, R=HEX ; | INCLUDE p12c508a.inc ; | ; | __CONFIG _IntRC_OSC & _WDT_OFF & _CP_OFF & _MCLRE_OFF ; | ;****************************************************************************************| #Define LED1 GPIO,0 #Define LED2 GPIO,1 #Define LED3 GPIO,2 #Define Revers GPIO,3 #Define LED4 GPIO,4 #Define Res GPIO,5 _temp1 EQU 0x07 _temp2 EQU 0x08 ;***************************************************************************************| org 0 clrf GPIO movlw b'11000000' option movlw 0x08 tris GPIO ;********************************* НАЧАЛО ***********************************************| bcf LED1 bcf LED2 bcf LED3 bcf LED4 ;************************************************************************************* bcf LED1 call Time Begin btfsc Revers goto Rever bsf LED2 call Time bcf LED1 call Time bsf LED3 call Time bcf LED2 call Time bsf LED4 call Time bcf LED3 call Time bsf LED1 call Time bcf LED4 call Time goto Begin Rever bcf LED1 bcf LED2 bcf LED3 bcf LED4 bsf LED4 call Time Begin2 btfss Revers goto Begin bsf LED3 call Time bcf LED4 call Time bsf LED2 call Time bcf LED3 call Time bsf LED1 call Time bcf LED2 call Time bsf LED4 call Time bcf LED1 call Time goto Begin2 ;********************************* Time bsf Res call Time1 movlw 0x28 tris GPIO btfsc Res goto $-1 movlw 0x08 tris GPIO bcf Res Return ;******************************* Time1 movlw 0x10 movwf _temp1 clrf _temp2 decfsz _temp2 goto $-1 decfsz _temp1 goto $-4 Return end ето една проста с пик 12, честотата се задава с резистор и кондензатор на еиднот пиновете, не помня кой, имаше май и джъмпер з апосоката, и трябва да са четери редуващи се леда .. тов асъм го правил преди 100 години като почвах да се занимавам с пикове. |
|
| Автор: | valioman [ Пет Сеп 12, 2008 9:45 am ] | |||||||||
| Заглавие: | Re: RUN Light | |||||||||
Е толкова ли е трудно да шифтваш наляво и дясно с 1 даден порт . На С това се пише PORT>>1 или PORT<<1 като сложиш и едно закъснение и хоп светлините почват да бягат или вървят НАистина не го приемай като базик ама какаъвто въпроса такъв и отговора |
||||||||||
| Автор: | TheWizard [ Пет Сеп 12, 2008 7:28 pm ] |
| Заглавие: | |
:)) то ясно, просто не ми се мисли в момента... търсех някяква "хитра" мат. формулка дето хем да припка хем да сменява ефекта |
|
| Автор: | Ки4о [ Пет Сеп 12, 2008 9:06 pm ] |
| Заглавие: | |
Малко тъпичка идея ама може да пробваш това : unsigned char table[20]; int i; for (i=0;i<20;i++) { table[i] = (char)(rand() % 255); for (i=0;i<20;i++) { char p; for(p=0;p<7;p++) { PORTB=(table[i]<<p); DelayMs(100); } } } Идеята е да генерираш 20 случайни числа и после ги пускаш да бягат по порта - какво ще се получи обаче.. |
|
| Автор: | ДедоБоре [ Пет Сеп 12, 2008 9:24 pm ] | |||||||||
| Заглавие: | ||||||||||
верно? а в друг момент? |
||||||||||
| Автор: | TheWizard [ Пон Сеп 15, 2008 1:28 pm ] |
| Заглавие: | |
Ки4о мерси - нещо подобно сътворих :) |
|
| Автор: | woody [ Пон Сеп 15, 2008 1:37 pm ] |
| Заглавие: | |
Всъщност един LFSR е това което търсиш - бягат в една посока и са "случайни". Обаче темата определено е безумна. |
|
| Автор: | TheWizard [ Пон Сеп 15, 2008 2:34 pm ] |
| Заглавие: | |
неставаше въпрос за безумност - търсех нещо "хитроумно" да СМЕНЯ ефектитите масивите и RND числа са ясни.... и дори нестава въпрос за контролер, а за алгоритъм/математика за визуализация/анимация на тема RunLight.... |
|
| Автор: | woody [ Пон Сеп 15, 2008 2:52 pm ] | |||||||||
| Заглавие: | ||||||||||
LFSR? |
||||||||||
| Автор: | perro_iv [ Пон Сеп 15, 2008 10:14 pm ] |
| Заглавие: | |
Имах един проект на тази тема с който бая се заиграх и се получиха готини неща, но е на харда от компа ми, на който му сменят дъното и не мога да го отворя. Но ще ти дам тип Отваряш EXCEL и си подреждаш двоичните комбинации. Достатъчни са ти 4-ри бита всичко останало се повтаря. Срещу всяка комбинация си пишеш десетичния еквивалент и от там нататъка е достатъчно да можеш да събираш две и две за да се досетиш за простите формули, които завъртяни в цикъл могат да ти опишат невероятни бягащи и гонещи, и запълващи се светлини. Скоростта на въртене, смяната на комбинациите са въпрос на фантазия, което смятам е и гъдела на разработчика, та ще те оставим да се насладиш на воля ... |
|
| Автор: | perro_iv [ Вто Сеп 23, 2008 2:12 pm ] |
| Заглавие: | |
#include <p18f4550.h> #pragma config WDT = OFF unsigned speed=20000; unsigned speed_up=16000; unsigned speed_down=16000; unsigned counter=0; unsigned int i; unsigned int j; unsigned int B; unsigned int D; void delay (unsigned time) { for (i = 0; i < time ; i++); } void main (void) { TRISA = 0; DCON1=6; PORTA = 0; PORTAbits.RA4=1; TRISB = 0; PORTB = 0; TRISD = 0; PORTD = 0; while (1) { for (counter=0;counter<=15;counter++) { D=1; PORTD = D; speed=20000; delay(speed); for (j=1;j<=8;j++) { D=D+D; PORTD=D; delay(speed_up); } for (j=1;j<=8;j++) { D=D/2; PORTD=D; delay(speed_down); } speed_down=speed_down-1000; speed_up=speed_up-1000; if (speed_up==0 || speed_down==0) { speed_up=speed_up+16000; speed_down=speed_down+16000; } } for (counter=0;counter<=10;counter++) { D=0; PORTD=D; delay(speed); for (j=1; j<=8;j++) { D=D+D+1; PORTD=D; delay(speed); } speed=speed-2000; } for (j=1;j<=255;j++) { D=j; PORTD=D; delay(speed-10000); } } } |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|