Witam wszystkich, mam problem potrzebuję sterować stanem pinu lecz nie potrafię rozgryźć co jest nie tak w kodzie. Poniżej kod w BASCOMIE : $regfile = "m8def.dat" $crystal = 1000000 Config Portb.1 = 1 Portb.1 = 0 Config Portd = &B11110000 Portd = &B11011111 Config Portc = &B11111110 Portc = &B11111001 Tccr1a = &B11110010 Tccr1b = &B00011011 Do While Pinc.0 = 0 Pind.5 = 1 Wait 1 Wend If Pind.0 = 0 Then Icr1 = 15625 If Pind.0 = 0 Then Ocr1a = 20000 If Pind.0 = 0 Then Pind.5 = 0 If Pind.1 = 0 Then Icr1 = 18825 If Pind.1 = 0 Then Ocr1a = 14925 If Pind.1 = 0 Then Pind.5 = 1 If Pind.2 = 0 Then Icr1 = 13354 If Pind.2 = 0 Then Ocr1a = 9454 If Pind.2 = 0 Then Pind.5 = 1 If Pind.3 = 0 Then Icr1 = 9412 If Pind.3 = 0 Then Ocr1a = 5512 If Pind.3 = 0 Then Pind.5 = 1 Loop End Po uruchomieniu układu stan na wyjściu D5 atmegi ma się zmieniać gdy pin C0 jest zwarty z masą. A dokładniej zmiana stanu portu D5 ma trwać tak długo aż zostanie zwolniony przycisk na pinie C0. Oprócz tego podczas spełnienia 3 instrukcji warunkowych również powinien zostać zmieniony stan pinu D5. Program w rzeczywistości ustawia tylko początkowy stan pinu D5 na niski i nie reaguje ani na pętle ani na instrukcje warunkowe. Czy problem może być związany z Timerem1 który wykorzystuje ? Proszę o ewentualne wskazówki co do rozwiązania problemu.
|
|||
Re: Pin/port
Problem jest w tym że chcesz ustawiać stan pinu ustawiając stan w rejestrze wejściowym a nie wyjściowym. Rejestr wejściowy do odczytu nazywa się pinx.y lub jak chcesz cały to pinx. Jak natomaist chcesz ustawić coś na porcie zewnętrznym to wpisujesz to do portx.y lub dla całego portx. Zatem poprawiony fragment będzie wyglądał tak:
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: Wniosek o zakup reduktora
No rzeczywiście ale się zgapiłem :D Dzięki wielkie za pomoc.