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.

(BASCOM) Atmega 168 - źle działa po zaprogramowaniu.

Paweł1791 05 Lut 2012 14:23 1875 6
  • #1 05 Lut 2012 14:23
    Paweł1791
    Poziom 9  

    Witam

    Mam taki problem z Atmega 168, programuje ja na płytce testowej ZL2AVR. Wszystko działało do czasu gdy zacząłem programować termometr z wykorzystaniem czujnika DS18B20, w internecie znalazłem program gdzie była dodatkowa dyrektywa "$prog &HFF , &HFD , &HD9 , &H00" wiem, że tu chodzi coś o fusebity. A problem jest taki, że po wgraniu tego do Atmegi programuje się ona tylko gdy nie mam nic do niej podłączone, gdy podłącze diodę program Bascom-AVR już jej nie wykrywa.

    Z góry dziękuje za odpowiedź

    Pozdrawiam Paweł

    0 6
  • #2 05 Lut 2012 20:46
    FastProject
    Poziom 28  

    Napisz jaki masz podłączony kwarc do procesora. Jak dobrze wydedukowałem, to powinieneś mieć kwarc z zakresu od 3 do 8MHz

    0
  • #3 05 Lut 2012 22:06
    Paweł1791
    Poziom 9  

    Mam podłączony kwarc 16MHz, ale z tego co wiem to w tej Atmedze nie trzeba fusebitów zmieniać do większego kwarcu. Teraz pojawiły się nowe okoliczności gdy podłączę diodę lub coś innego pod portb.6 to Atmega przestaje działać. A gdy mam podłączony sam programator Sample Electronics Programmer bez zasilania to zapala mi się dioda sygnalizująca napięcia zasilania płytki!. Wydaje mi się, że to już jest nie do odratowania, ale wszelkie sugestie mile widziane.

    0
  • #4 05 Lut 2012 23:56
    FastProject
    Poziom 28  

    Paweł1791 napisał:
    Mam podłączony kwarc 16MHz, ale z tego co wiem to w tej Atmedze nie trzeba fusebitów zmieniać do większego kwarcu.


    Oj to mało wiesz...kto ci to powiedział?
    Strona 30: http://www.atmel.com/Images/doc2545.pdf

    Podłącz też wszystkie piny zasilania i GND do procesora.

    Bez schematu i programu dalsza dyskusja nie ma sensu!

    0
  • #5 06 Lut 2012 18:22
    Paweł1791
    Poziom 9  

    Więc tak tutaj jest schemat tej płytki http://www.cyfronika.com.pl/uruchomieniowe/zl2avr.pdf..

    (BASCOM) Atmega 168 - źle działa po zaprogramowaniu.

    Zdjęcie przedstawia ustawienie fusebitów w Bascom AVR. A tu jest program:

    Cytat:

    $regfile = "m168def.dat"
    $crystal = 16000000
    Config Portb = Output 'Port b jako wyjście
    Config Portd = Output 'Port d jako wyjście
    Dim A As Long
    Dim Jednostki As Long
    Dim Dziesiatki As Long
    Dim Setki As Long
    Dim Tysiace As Long
    Dim Wysw As Byte

    Portd = &B1111111
    '*******Program*******
    Do
    A = 1234
    Incr Wysw
    If Wysw = 4 Then
    Wysw = 0
    End If
    '***Wyciąganie cyfr***
    Jednostki = A Mod 10
    Dziesiatki = A / 10
    Dziesiatki = Dziesiatki Mod 10
    Setki = A / 100
    Setki = Setki Mod 10
    Tysiace = A / 1000
    '**Wyświetlanie*******
    Portd = &B1111111 'wyłączenie wszystkich ledów
    Select Case Wysw
    Case 0:
    Portb = Lookup(jednostki , Cyfry)
    Reset Portd.3
    Case 1:
    Portb = Lookup(dziesiatki , Cyfry)
    Reset Portd.4
    Case 2:
    Portb = Lookup(setki , Cyfry)
    Reset Portd.5
    Case 3
    Portb = Lookup(tysiace , Cyfry)
    Reset Portd.6
    End Select
    Loop

    Cyfry:
    Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144

    0
  • Pomocny post
    #6 08 Lut 2012 22:47
    WOBI
    Poziom 19  

    Nie możesz używać całego portu B, piny portB.6 i portB.7 przy takim ustawieniu fuse bitów ext osylator sa wyjściami oscylatora kwarcowego i normalne jest że atmega przestaje działać :) , blokujesz przecież taktowanie procesora, gasisz oscylacje kwarcu.

    Masz dwa wyjścia:
    1. przełączyc fuse bity na internal RC oscylator np 8MHz i zmienić definicje $crystal na 800000
    2. napisac program inaczej by nie używać i nie wysyłać nic na pb.6 i pb.7, a ledy podłączyć do innych potrów.

    0
  • #7 09 Lut 2012 12:22
    Paweł1791
    Poziom 9  

    Wielkie dzięki :). Nie wiem zupełnie jak mogłem coś takiego przeoczyć.

    0
  Szukaj w 5mln produktów