Potrzebuje wsparcia w przygotowaniu programu do Atmegi : )
Schemat finalny sterownika, zamieszczam poniżej, dodałem głośnik oraz przyciski.
Wszystko jest robione „na szybko” więc wstrzymuje się z zamieszczeniem zdjęć ; )
Pierwszy przycisk PROG1 chce użyć do przełączania wariantów świecenia diod LED.
Drugi przycisk PROG2 do przełączania melodyjek polifonicznych.
Wiem orientacyjnie jak modyfikować warianty świecenia diod LED ale nie jak przełączać się między nimi przyciskiem z możliwością zgaszenia wszystkich. Podobnie jak obsługą głośnika.
Jak przygotować dźwięk polifoniczny ?
Ze znanego kursu XYZ HOBBY ROBOT (link podałem ostatnim razem) -znalazłem przykładowy przykładowy program pozytywka z funkcją jak:
int koziolek[][2]={
523,125, 587,125, 659,250, 698,125, 659,125, 587,250, 523,250, 1047,250, 784,250, 523,250, 1047,250, 784,250, 523,250, 1047,250, 784,1000 };
Ktoś orientuje się jak wyglądają kolęndy w tej samej postaci ?
Kod programu choinki zamieszczam poniżej - Tu proszę Kolegów o wsparcie : )
#define F_CPU 1000000L
#include
#include
int main(void)
{
/* Obsługa przycisków na porcie C */
/* PROG1 - LEDs; PROG2 - Buzzer; */
DDRC = 0x03; /* 0x03 binarnie 000 011 */
/* Wszystkie linie portu D będą wyjściami */
DDRD = 0xFF; /* 0xFF binarnie 1111 1111 */
/* Początek nieskończonej pętli */
while(1)
{
/* miejsce obsługę przyciska PROG1 - LEDY */
/*1-miganie diod LED na przemian zielone - czerwone na zmianę*/
PORTD = 0xaa; /* 0xaa binarnie 1010 1010 */
/* opóźnienie 0.33 sek. */
_delay_ms(330);
PORTD = 0x55; /* 0x55 binarnie 0101 0101 */
/* opóźnienie 0.33 sek. */
_delay_ms(330);
/*2-gaśnięcie połowy diod LED i zapalenie na przemian */
PORTD = 0x0f; /* Ładuje do PORTD wartość 0x0f*/
/* opóźnienie 1 sek. */
_delay_ms(1000);
PORTD |= 0xf0; /* ustawia bity nr. 4..7 */
_delay_ms(1000);
PORTD &= 0xaa; /* zeruje bity nr. 0,2,4,6 */
_delay_ms(1000);
PORTD ^= 0x0f; /* "odwraca" bity nr. 0..3 */
_delay_ms(1000);
PORTD = 0x00;
/* opóźnienie 2 sek. */
_delay_ms(2000);
/*3 - warian 2 na odwrót*/
PORTD = 0x0f; /* Ładuje do PORTD wartość 0x0f*/
/* opóźnienie 1 sek. */
_delay_ms(1000);
PORTD ^= 0x0f; /* "odwraca" bity nr. 0..3 */
_delay_ms(1000);
PORTD |= 0xf0; /* ustawia bity nr. 4..7 */
_delay_ms(1000);
PORTD &= 0xaa; /* zeruje bity nr. 0,2,4,6 */
_delay_ms(1000);
PORTD = 0x00;
/* opóźnienie 2 sek. */
_delay_ms(2000);
/*4 - miejsce na inny wariant świecenia diod LED*/
/* miejsce obsługę przyciska PROG2 - Buzzer */
int kolenda1[][2]={
};
int kolenda2[][2]={
};
int kolenda3[][2]={
};
}
}
__________
Komentarz dodany przez: Treker
Programy umieszczamy w tagach . Popraw to proszę!