eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikazamulający program na AVRRe: zamulający program na AVR
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!.POSTED!not-for-mail
    From: badworm <n...@p...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: zamulający program na AVR
    Date: Sat, 9 Apr 2016 08:42:13 +0200
    Organization: ATMAN - ATM S.A.
    Lines: 68
    Message-ID: <4uvz9y3n54mp$.dlg@badworm.pl>
    References: <p...@b...pl>
    <57067701$0$22840$65785112@news.neostrada.pl>
    <g...@b...pl> <ne8d1m$vio$1@node2.news.atman.pl>
    <1...@b...pl> <ne9b6d$u4o$1@node2.news.atman.pl>
    NNTP-Posting-Host: ip-5-172-247-217.free.aero2.net.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset="iso-8859-2"
    Content-Transfer-Encoding: 8bit
    X-Trace: node1.news.atman.pl 1460184105 16095 5.172.247.217 (9 Apr 2016 06:41:45 GMT)
    X-Complaints-To: u...@a...pl
    NNTP-Posting-Date: Sat, 9 Apr 2016 06:41:45 +0000 (UTC)
    User-Agent: 40tude_Dialog/2.0.15.1pl Hamster/2.0.0.1
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:698106
    [ ukryj nagłówki ]

    Dnia Sat, 9 Apr 2016 00:26:27 +0200, Grzegorz Niemirowski napisał(a):

    > Którego pliku i po co?

    Plik iom324pa.h w katalogu /avr/include/avr/ - to chyba w plikach tam
    się znajdujących są definicje np. rejestrów we wszystkich obsługiwanych
    typach procesorów.

    > Z czego na co?

    # MCU name
    MCU = atmega8

    na

    # MCU name
    MCU = atmega324pa
    > Trudno coś powiedzieć bez kodu. Zwykle robi się tak, że dołącza się plik
    > <avr/io.h>. W pliku tym są warunkowe dołączenia plików nagłówkowych danego
    > procesora na podstawie makra generowanego przez wybór danego mikrokontrolera
    > parametrem -mmcu:
    > #elif defined (__AVR_ATmega324PA__)
    > # include <avr/iom324pa.h>
    > Jak sobie na siłę dołączysz avr/iom324pa.h to się pewnie skompiluje
    > niezależnie od wyboru -mmcu.

    Początek pliku main.c wygląda u mnie tak:

    #include <avr\io.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <inttypes.h>
    #include <avr\signal.h>
    #include <avr\interrupt.h>
    #include <avr\pgmspace.h>
    #include <avr\eeprom.h>
    #include <avr\delay.h>

    A w wersji, która kompiluje się w najnowszym GCC bez błędów tak:

    #include <avr\io.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <inttypes.h>
    //#include <avr\signal.h>
    #include <avr/interrupt.h>
    #include <avr\pgmspace.h>
    #include <avr\eeprom.h>
    #include <util/delay.h>

    Jak wspomniałem, kiedyś próba bezpośredniego przeniesienia kodu z Mega 8
    na Mega 162 tylko poprzez zmianę przytoczonego wyżej wpisu w makefile
    skończyła się błędami przy kompilacji, bo 162 ma dwa porty USART, a w
    związku z tym inne są nazwy rejestrów, obsługujących ten interfejs.
    Tutaj więc oczekiwałem podobnej reakcji, ale widzę iż zarówno nowe, jak
    i stare GCC żadnych problemów nie zgłaszają :/

    Z obsługą TWI mam chwilowo jakiś problem, przykładowe funkcje znalezione
    w sieci (np. tutaj http://radzio.dxp.pl/twi/) choć są bardzo proste, to
    chyba nie do końca mi działają. Mam wrażenie, że program się z jakiegoś
    powodu wysypuje dokumentnie. Póki co zostawiam ten temat do ogarnięcia
    na później, będę chciał najpierw przetestować funkcje obsługi TWI na
    spokojnie a dopiero potem dodać je do docelowego programu. Najważniejsza
    jest dla mnie teraz przesiadka na MEGA 324, bo z programowym I2C jakoś
    to wszystko działa, a nie załaduję przecież kodu dla Mega 8 do większego
    procka.
    --
    Pozdrawiam Bad Worm badworm[maupa]post{kropek}pl

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: