Отговори на тема  [ 12 мнения ] 
RUN Light 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение RUN Light
Търса сорсче на С за бягащи светлинки.... :)

_________________
main[-1u]={1};


Чет Сеп 11, 2008 11:30 pm
Профил ICQ
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение 
:) . за какви бягащи светлини, с какво ... :)

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 години като почвах да се занимавам с пикове.


Пет Сеп 12, 2008 12:05 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Съб Сеп 17, 2005 5:07 pm
Мнения: 813
Местоположение: Сливен
Мнение Re: RUN Light
TheWizard написа:
Търса сорсче на С за бягащи светлинки.... :)


Е толкова ли е трудно да шифтваш наляво и дясно с 1 даден порт .
На С това се пише PORT>>1 или PORT<<1 :))
като сложиш и едно закъснение и хоп светлините почват да бягат или вървят :)
НАистина не го приемай като базик ама какаъвто въпроса такъв и отговора


Пет Сеп 12, 2008 9:45 am
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
:)) то ясно, просто не ми се мисли в момента...
търсех някяква "хитра" мат. формулка дето хем да припка хем да сменява ефекта

_________________
main[-1u]={1};


Пет Сеп 12, 2008 7:28 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
Малко тъпичка идея ама може да пробваш това :
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:06 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Ное 21, 2004 11:31 pm
Мнения: 10088
Мнение 
TheWizard написа:
... просто не ми се мисли в момента ...

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


Пет Сеп 12, 2008 9:24 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
Ки4о мерси - нещо подобно сътворих :)

_________________
main[-1u]={1};


Пон Сеп 15, 2008 1:28 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение 
Всъщност един LFSR е това което търсиш - бягат в една посока и са "случайни".
Обаче темата определено е безумна.


Пон Сеп 15, 2008 1:37 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение 
неставаше въпрос за безумност - търсех нещо "хитроумно" да СМЕНЯ ефектитите
масивите и RND числа са ясни....

и дори нестава въпрос за контролер, а за алгоритъм/математика за визуализация/анимация на тема RunLight....

_________________
main[-1u]={1};


Пон Сеп 15, 2008 2:34 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение 
TheWizard написа:
търсех някяква "хитра" мат. формулка дето хем да припка хем да сменява ефекта


LFSR?


Пон Сеп 15, 2008 2:52 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение 
Имах един проект на тази тема с който бая се заиграх и се получиха готини неща, но е на харда от компа ми, на който му сменят дъното и не мога да го отворя.
Но ще ти дам тип :idea: и ако си находчив ще се справиш.
Отваряш EXCEL и си подреждаш двоичните комбинации.
Достатъчни са ти 4-ри бита всичко останало се повтаря.
Срещу всяка комбинация си пишеш десетичния еквивалент и от там нататъка е достатъчно да можеш да събираш две и две за да се досетиш за простите формули, които завъртяни в цикъл могат да ти опишат невероятни бягащи и гонещи, и запълващи се светлини.
Скоростта на въртене, смяната на комбинациите са въпрос на фантазия, което смятам е и гъдела на разработчика, та ще те оставим да се насладиш на воля ... :wink:


Пон Сеп 15, 2008 10:14 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Вто Авг 23, 2005 10:36 am
Мнения: 156
Местоположение: Казанлък
Мнение 
#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);
}
}
}


Вто Сеп 23, 2008 2:12 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 12 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни