Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Program nie reaguje na zmianę na wejściu pic16f874A

kidcowboy 17 Mar 2011 00:05 1344 10
  • #1 17 Mar 2011 00:05
    kidcowboy
    Poziom 9  

    Witam.
    Mam następujący problem: otóż po napisaniu programu mikrokontroler nie odpowiada tzn nie rozróżnia stanów na wejściu poniżej czy podaję logiczną 1 (5V) czy "0" - program wchodzi zarówno w pierwszy jak i drugi warunek "if" . Zapala zarówno diodę PORTC (0) jak i przełącza diody PORTC(1) i PORTC(7). Z góry dziękuję za pomoc. Poniżej załączam listing :

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Dodano po 55 [minuty]:

    Dodam tylko, że na wejściu mikrokontrolera mam cały czas stan wysoki - czy to możliwe żeby już padł?

    Proszę pamiętać o używaniu znaczników code.
    Proszę poprawić temat postu. Pisanie wielkimi literami jest niedozwolone. - arnoldziq

    0 10
  • #2 17 Mar 2011 07:26
    dondu
    Moderator Mikrokontrolery Projektowanie

    Witaj,

    1. Makra bit_set() i bit_clear() zdefiniowane na początku Twojego kodu służą odpowiednio do ustawiania i kasowania bitu, a nie sprawdzania jego stanu. Zauważ że program, który zdobyłeś z jakiegoś źródła ma tam także zdefiniowane makro bit_test () i to jego powinieneś użyć.

    2. Jakiego kompilatora używasz?

    3. Pokaż schemat swojego układu.

    A ponieważ biedny jesteś (0.12 pkt), ale C używasz a my tutaj to promujemy, to masz ode mnie 20pkt. Może ktoś się dorzuci?

    I zmień ten tytuł jak pisze moderator.

    0
  • #4 17 Mar 2011 11:29
    dondu
    Moderator Mikrokontrolery Projektowanie

    Poczekam na schemat.
    Wklej program po zmianach.

    Dlaczego zwróciłeś mi punkty?

    0
  • #5 17 Mar 2011 14:12
    kidcowboy
    Poziom 9  

    Wybacz dondu ale obrazek jedynie bmp. Nadmienię tylko że jest to układ gotowy. Do wyjścia out podpięte są diody z obciążeniem na in transoptory( chwilowo odłączyłem). układ nie reaguje na zmianę na wejściu ( zawsze zapala diody - nie reaguje na pętle ( żadne ) z góry dziękuję za pomoc. (Te punkty to myslalem że Ci dałem :))

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Dodano po 1 [minuty]:

    Program nie reaguje na zmianę na wejściu pic16f874A

    0
  • #6 17 Mar 2011 14:26
    dondu
    Moderator Mikrokontrolery Projektowanie

    1. odnośnie znaczników CODE: http://mozillapl.org/forum/faq.php?mode=bbcode#f2r1

    2. Mnie punkty nie są potrzebne, więc mi ich nie oddawaj. Jeżeli chcesz mnie wynagrodzić, to od tego jest przycisk POMÓGŁ.

    3. Schemat, hmm ... w tytule piszesz o PIC16f874A, także w programie masz wybraną bibliotekę (chyba) do tego PICa, a na schemacie pokazujesz mi kompletnie inny procesor.

    Coś tu nie gra.

    0
  • #7 17 Mar 2011 14:49
    kidcowboy
    Poziom 9  

    zgadza sie bo PIC16C64A jest kasowalny tylko ultrafioletem. PIC 16F874A ma takie same wyprowadzenia tylko że ma pamieć typu EEPROM

    0
  • Pomocny post
    #8 17 Mar 2011 16:13
    dondu
    Moderator Mikrokontrolery Projektowanie

    Skoro tak twierdzisz (ja tego nie będę sprawdzać), to OK.
    Opisz na rysunku piny ich nazwami (tylko te, które wykorzystujesz faktycznie), bo są same numery, a ja nie mam czasu szukać w datasheet.

    0
  • #9 17 Mar 2011 18:14
    kidcowboy
    Poziom 9  

    kurcze - szkoda że głupota nie unosi - miałeś rację z tym test_bit. nie podpiąłem nogi. sczytuje sygnały PIC. Dzieki wielkie - będę walczył dalej !!

    0
  • #10 17 Mar 2011 18:24
    dondu
    Moderator Mikrokontrolery Projektowanie

    Powodzenia.

    0
  • #11 05 Kwi 2011 13:21
    kidcowboy
    Poziom 9  

    Błąd wynikał z tego że argument set_bit w warunku if zawsze był spełniony natomiast powinno być test_bit

    0