Witam
Po pierwsze jako nowy członek forum chciałbym się ze wszystkimi serdecznie przywitać

Zmajstrowałem sobie taki mały programik odpowiadający za zmianę trybów świecenia kilku diód pod wpływem wciśnięcia klawisza na Atmega8 i nie wiedzieć czemu, napotkałem na błąd w najmniej oczekiwanym przeze mnie miejscu.
W 17 wierszu pliku modes.c pojawia się błąd o treści:
Error napisał(a):
left shift count >= width of type [enabled by default]
Domyślam się, że to chodzi o niezgodność rozmiarów zmiennych po lewej i prawej stronie przypisania, ale nie mam pojęcia czemu tak się stało w przypadku tego programu. Jest to niepierwszy program wykonany przeze mnie używając takiego przesunięcia bitowego (w gruncie rzeczy nieskomplikowanego

) i nigdy się nic nie psuło.
Po załadowaniu takiego programu do kontrolera miga tylko dioda oznaczona LED2.
Gdybym zamienił owy wiersz na "PORTC ^= 0b00101010;" to wszystko działa jak trzeba.
Jeszcze mam problem z diodą LED0, która jest podłączona do portu PB0. Nie świeci dostatecznie wyraźnie, a zmierzone napięcie między pinem PB0, a GND i jest tylko około 2,5V. Czym to może być spowodowane? Do każdego pinu C użytego w programie jest podpięte po 2 diody LED szeregowo i rezystor 100 Ohm.
Napięcie zasilania wynosi dokładnie 5V i nie ma żadnych odchyłek.
Czy jest to możliwe, że kontroler został w jakikolwiek sposób przeciążony? Dla diód LED1,2,3 podciągnąłem je przez tranzystor, żeby nie płynął tak duży prąd przez atmegę.
Z góry dziękuję za sugestie.
Gdyby jednak taki temat się gdzieś przewinął, a ja niedokładnie szukałem to z góry przepraszam i proszę o link

język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.