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.

[Atmega162][bascom] Config porta = input nie działa :(

:) 26 Lis 2009 22:59 1109 1
  • #1 26 Lis 2009 22:59
    :)
    Poziom 14  

    Witam, kiedyś hobbystycznie pisałem jakieś programiki na 8051 w bascomie i nawet coś mi wychodziło, z nudów chciałem pobawić się AVRkami jako, że są łatwiejsze w programowaniu. Zacząłem więc działać, fuse bity mam ustawione w ten sposób:

    Zaprogramowane bity: CKSEL0, CKSEL2, CKSEL3, SUT0, CKDIV8, BOOTSZ0, BOOTSZ1, SPIEN, JTAGEN

    Korzystam z wbudowanego kwarcu ustawionego (tak mi się wydaje) na 1MHz.

    W pierwszym podejściu napisałem prosty testowy program z migającą diodą - program działał prawidłowo

    Następnie chciałem pobawić się portem wejściowym i napisałem coś takiego:

    Code:
    $regfile = "m162def.dat"
    
    $crystal = 1000000
    Config Portb = Output
    Config Porta = Input


    Do
    Portb = Porta
    Loop


    Niestety program nie działa, na porcie B na wszystkich pinach jest stan 0 nie ważne co bym nie podawał na piny portu A. Nie mogę sobie z tym poradzić, czy ktoś może zwrócić uwagę co zchrzaniłem z programie bądź konfiguracji fuse bitów ??

    Z góry dziękuję za pomoc :)

    0 1
  • #2 26 Lis 2009 23:12
    dawid512
    Poziom 32  

    Temat powinien polecieć do kosza ale... :D

    Na początek musisz wiedzieć że do odczytu danych z końcówek portu służy rejestr PINx czyli w twoim przypadku PINA. Po za tym musisz uruchomić wew. rezystory podciągające (pull-up) czyli piszesz np. PORTA = 255. Na koniec powinno to wyglądać tak :

    Code:
    PORTB = PINA
    . Po więcej informacji sięgaj do helpa tam wszytsko jest jasno opisane :).

    0