Aktywne Wpisy
Poldek0000 +56
#pieklomezczyzn (nie tym razem)...
Żona Hakimiego po 3 latach małżeństwa złożyła pozew o rozwód z zawodnikiem PSG i zażądała połowy całego majątku piłkarza. Na nieszczęście dla niej i ku jej wielkiemu zdziwieniu dowiedziała się, że fortuny nie ma, gdyż sąd poinformował ją, że jej mąż-milioner nie posiada nic, gdyż wszystkie jego majątki są zarejestrowane na JEGO MAMĘ.
Hakimi zarabia w PSG milion euro miesięcznie i wszystkie pieniądze wpłaca na konto swojej mamy.
Żona Hakimiego po 3 latach małżeństwa złożyła pozew o rozwód z zawodnikiem PSG i zażądała połowy całego majątku piłkarza. Na nieszczęście dla niej i ku jej wielkiemu zdziwieniu dowiedziała się, że fortuny nie ma, gdyż sąd poinformował ją, że jej mąż-milioner nie posiada nic, gdyż wszystkie jego majątki są zarejestrowane na JEGO MAMĘ.
Hakimi zarabia w PSG milion euro miesięcznie i wszystkie pieniądze wpłaca na konto swojej mamy.
Hambercios +6
Niezła bitka, ale bywały mocniejsze finały, zaskoczenia nie ma.
Szkoda Domalika, bo Don Diego to buc, ale talentu mu nie odmówię.
#gromda
Szkoda Domalika, bo Don Diego to buc, ale talentu mu nie odmówię.
#gromda
Głośnik jest sterowany przez PWM, na wyjście uC podaje wynik z algorytmu, konkretnie z tego. Cały kod programu tutaj. Przy tym taktowaniu częstotliwość próbkowania powinna wynieść
8000000/256 = 31250 Hz
. Czyli teoretycznie przy włączeniu układu do zasilania odgrywana melodia powinna być kilkukrotnie szybsza niż na wideo z youtube. A jest całkiem na odwrót - jest około dwukrotnie wolniejsza. Dlaczego tak jest, co przeoczyłem?#avr #elektronika
@a231: właśnie zastanawiałem się, jaki wpływ ma ta pozornie krótka linijka na sam procesor, bo dodanie jej spowodowało przyrost binarki o kilkaset (!) bajtów. Próbowałem przenosić kod z ISR do maina, ale nic to nie zmieniało. Nie mam za bardzo pomysłu jak sprawdzić, czy proc "wyrabia".
@Feargan: uruchom program w symulatorze i sprawdź czy przerwanie ma szansę się wykonać w 256 cykli (symulator powinien pokazywać cykle zegarowe). Możesz też na początku przerwania ustawić jakiś pin i na końcu go zgasić i sprawdzić wypełnienie takiego przebiegu na oscyloskopie.
@Analityk: To nie arduino
t
nauint32_t
uszczupla kod assemblera o jakieś 80 linijek, teraz dźwięk odtwarza się (chyba) tak jak powinien ( ͡° ͜ʖ ͡°) ale baboldzięki za naprowadzenie ( ͡° ͜ʖ ͡°)
@Analityk: ocr0a jest 8 bitowy, ale kluczową kwestią są tu obliczenia wykonywane na większym zakresie
Komentarz usunięty przez autora
Komentarz usunięty przez autora
@Feargan: ultradźwięki modulowane częstotliwościami akustycznymi ( ͡~ ͜ʖ ͡°)
a skoro w tym setupie słyszysz dźwięk to znaczy, że masz ustawiony fusebot dzielący główny zegar przez osiem. wtedy słyszałbyś dźwięk rzędu pojedynczych kiloherców ale #!$%@? bo nie pokazałeś całego kodu.
t
jest zawsze równe0
?t
musi być 32-bitowe, inaczej program odtwarzałby jedynie super krótki fragment melodyjki. Po drugie, podczas przypisywania wartościt
doOCR0A
następuje niejawna konwersja nauint8_t
, która w zasadzie polega na przypisaniu do tego rejestru wartości równejt&0xff
lubt%256
.@Feargan: Na podstawie linii kodu numer 27 z listingu, który zamieściłeś:
@Feargan: Do rejestrów powinieneś wpisywać takie wartości, jakie powinny się tam znaleźć. Niejawna konwersja w tym momencie to domaganie się nieokreślonych zachowań.
To powiedz mi jaka wartość znajdzie się w OCRA w tym przypadku:
OCR1A
static storage duration - przecież wyraźnie widać, że
t
jeststatic
, czyli przy pierwszym przerwaniu tworzona jest jedyna instancja tej zmiennej i istnieje do końca działania programu. Inicjalizacja wartości też występuje tylko raz.Zgodnie ze standardem C takie