Witam,
Oto mój pierwszy program na mikrokontroler. Dopiero co dostałem USBasp programator i chcę sobie zrobić tęczowe podświetlenie do myszki komputera. Napisałem program, ale nie wiem czy mi wystartuje. Bardzo proszę o uwagi, spodziewam sie dużo bałaganu w tym. Aha, zrobiłem tak, że co dwa cykle przejścia kolorów, jest jeden cykl białego, tak, żeby fioletowy sie mógł wyświetlać.
Mam zamiar użyć: AT90S2313-4SC.
Sorki że długie, ale chce przedstawić całość.
Sinistra
Oto mój pierwszy program na mikrokontroler. Dopiero co dostałem USBasp programator i chcę sobie zrobić tęczowe podświetlenie do myszki komputera. Napisałem program, ale nie wiem czy mi wystartuje. Bardzo proszę o uwagi, spodziewam sie dużo bałaganu w tym. Aha, zrobiłem tak, że co dwa cykle przejścia kolorów, jest jeden cykl białego, tak, żeby fioletowy sie mógł wyświetlać.
Mam zamiar użyć: AT90S2313-4SC.
Cytat:
/*Wojciech Marcinek, 20 Maj 2008, Kolorowe LED*/
#include <io.h>
#include <delay.h>
#include <stdio.h>
#define red PB.0
#define blue PB.1
#define green PB.2
#define F_CPU 4
int main (void)
{
while(1)
{
green = 0xff;
red = 0xff; /*białe*/
blue = 0xff;
void _delay_ms (100); /* przerwa 100 milisekund*/
while (red != 0xff && blue != 0x00 && green != 0x00) /*aż czerwona sie zaświeci*/
{
void _delay_ms (10);
-- blue; /* niebieska wył. i zielona też*/
-- green;
}
green = 0x00; /*upewniam sie że obie diody zgasły*/
blue = 0x00;
void _delay_ms (100);
while (red != 0x00 && blue != 0x00 && green != 0xff) /*aż zielona sie zaświeci*/
{
void _delay_ms (10);
-- red; /*czerwona wył, zielona wł.*/
++ green;
}
red = 0x00;
green = 0xff;
void _delay_ms (100);
while (red != 0x00 && blue != 0xff && green != 0x00) /* aż niebieska sie zaświeci */
{
void _delay_ms (10);
++ blue;
-- green
}
blue = 0xff; /*nieb. wł., ziel. wył.*/
green = 0x00;
void _delay_ms (100);
while (red != 0xff && blue != 0x00 && green != 0x00) /* aż czerwona sie zaświeci, drugi raz*/
{
void _delay_ms (10);
++ red;
-- blue;
}
red = 0xff; /*czerw. wł., nieb wył.*/
blue = 0x00;
void _delay_ms (100);
while (red != 0x00 && blue != 0x00 && green != 0xff) /*aż zielona sie zaświeci*/
{
void _delay_ms (10);
-- red; /*czerwona wył, zielona wł.*/
++ green;
}
red = 0x00;
green = 0xff;
void _delay_ms (100);
while (red != 0x00 && blue != 0xff && green != 0x00) /* aż niebieska sie zaświeci */
{
void _delay_ms (10);
++ blue;
-- green
}
blue = 0xff; /*nieb. wł., ziel. wył.*/
green = 0x00;
void _delay_ms (100);
while (red != 0xff && blue != 0xff && grteen != 0xff)
{
void _delay_ms (10);
++ green;
++ red;
}
}
}
Sorki że długie, ale chce przedstawić całość.
Sinistra
