Микроконтролери и електроника
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

TheWizard написа:
Търса сорсче на С за бягащи светлинки.... :)


Е толкова ли е трудно да шифтваш наляво и дясно с 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 написа:
... просто не ми се мисли в момента ...

верно? а в друг момент?

Автор:  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 ]
Заглавие: 

TheWizard написа:
търсех някяква "хитра" мат. формулка дето хем да припка хем да сменява ефекта


LFSR?

Автор:  perro_iv [ Пон Сеп 15, 2008 10:14 pm ]
Заглавие: 

Имах един проект на тази тема с който бая се заиграх и се получиха готини неща, но е на харда от компа ми, на който му сменят дъното и не мога да го отворя.
Но ще ти дам тип :idea: и ако си находчив ще се справиш.
Отваряш EXCEL и си подреждаш двоичните комбинации.
Достатъчни са ти 4-ри бита всичко останало се повтаря.
Срещу всяка комбинация си пишеш десетичния еквивалент и от там нататъка е достатъчно да можеш да събираш две и две за да се досетиш за простите формули, които завъртяни в цикъл могат да ти опишат невероятни бягащи и гонещи, и запълващи се светлини.
Скоростта на въртене, смяната на комбинациите са въпрос на фантазия, което смятам е и гъдела на разработчика, та ще те оставим да се насладиш на воля ... :wink:

Автор:  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/