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

Atmega 8- dziwne zachowywanie się

matiwegr2222 27 Lut 2014 18:03 828 7
  • #1 27 Lut 2014 18:03
    matiwegr2222
    Poziom 2  

    Witam,
    Ostatnio zacząłem zajmować się mikrokontrolerami AVR. Programy piszę w Bascom (najnowsza wersja). Programuje programatorem USBASP. Uczę się z książki Mikrokontrolery dla początkujących. Niestety nie mam płytki AVT-3500. Mam mikrokontroler Atmega8 na płytce stykowej. Jednak mikrokontroler się dziwnie zachowuje, gdy wygram ten program:

    Code:

    Config PORTB = &B11111111
    PORTB = B&11111111
    Config PORTD =&B1111100
    PORTD = &B1110111
    Do
    If PIND.0 = 0 Then PORTB.7 =0
    If PIND.1 = 1 Then PORTB.7 = 1
    Loop
    End

    Punkt dziesietny wyswietlacza świeci się po włączeniu zasilania. Układ zbudowałem na podstawie płytki avt. Schemat znajduje się tutaj:
    sklep.avt.pl/plytka-testowa-do-kursu-bascom-avr-z-ksiazka-40124.html
    Za odpowiedzi z góry dziękuję.

    0 7
  • Szkolenia elektronika Udemy
  • #2 27 Lut 2014 20:13
    Maskara
    Poziom 12  

    Nie znam BASCOMA, ale wydaje mi się, że walnąłeś literówkę, mianowicie w listingu jest It ... Then, ja natomiast coś słyszałem o konstrukcji If ... Then. Dziwne, że program się kompiluje.
    Żeby cokolwiek pomóc przydatny byłby również schemat układu.

    0
  • Szkolenia elektronika Udemy
  • #4 27 Lut 2014 21:39
    mi14chal
    Poziom 28  

    No też nie znam bascoma, ale chyba nie ustawiłeś portu B jako wyjściowego, po drugie gdzie sterowanie anodą wyświetlacza segmentowego?

    0
  • #5 27 Lut 2014 23:22
    Maskara
    Poziom 12  

    Nie napisałeś nawet czym przejawia się to dziwne zachowanie uC, może program jest ok, a po prostu Ty nie wiesz czego chcesz? Kropka na wyświetlaczy świeci się, bo PB0 jest zerem logicznym, kiedy nie naciskasz przycisku, a co się stanie, gdy przytrzymasz ten przycisk dłużej?

    PORTB = B&11111111 - tutaj masz jeszcze literówkę.

    EDIT:
    Poza tym PORTD w Atmedze8 ma 8 pinów, a ty wpisujesz do rejestrów 7 bitów.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod
    zamień na:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0
  • #6 28 Lut 2014 06:54
    matiwegr2222
    Poziom 2  

    Poprawię i dam znać. Ten program był pierwotnie stworzony na attiny2313. Ja nie mam tego zestawu uruchomieniowego z tym attiny. Połączyłem ten układ zestawu uruchomieniowego z atmega8. A punkt DP świeci po włączeniu zasilania, chociaż nie powinien. Gdy naciskał jeden przyciski DP gaśnie, a gdy następny świeci, więc potem program już działa dobrze.

    0
  • #7 01 Mar 2014 08:00
    matiwegr2222
    Poziom 2  

    Zmienilem, ale to nic nie dało. Nadal DP świeci po włączeniu zasilania. Zauważyłem tylko jedną ciekawą rzecz, a mianowicie gdy najpierw skonfiguruje się portd, a potem portb to układ działa tak jak powinien.

    0
  • #8 01 Mar 2014 21:30
    Maskara
    Poziom 12  

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    zanień na:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Drugi if nie wykonywał się wtedy, kiedy przycisk był wciśnięty, ale kiedy przycisk przy PD1 nie był wciśnięty.
    Pozdrawiam.

    0