logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zacząć programowanie Atmega8 w C? Kompilator, zasoby, projekt sterownika

zumik998 08 Lip 2017 19:53 1326 11
REKLAMA
  • #1 16575880
    zumik998
    Poziom 15  
    Posty: 427
    Pomógł: 25
    Ocena: 70
    Witam,
    Dotychczas programowałem jedynie procesor 8051 w assemblerze.
    Chciałbym nauczyć się programowania Atmegi w języku C,
    Posiadam Atmegę, programator ISP Oraz program PROGISP.
    Jakiś czas temu uszkodził mi się sterownik w Kuchence mikrofalowej i chciałbym sam zrobić sobie taki na wyświetlaczu 7' segmentowym,
    Oczywiście nie taki 1:1 jaki tam był :) tylko żeby można było wybrać ilość minut i sekund, włączać start, stop :)
    Stwierdziłem że Na Assemblerze było by to zbyt ciężkie do zrobienia a współcześnie popularny jest C i chciałbym się nauczyć :)
    Programowałem "Okienkowo " W C++ , tworzyłem proste programy :) Więc jakieś tam małe podstawy są,Jednak chciałbym zacząć przygodę z mikrokontrolerami w tym języku.
    Bardzo proszę o poradę jaki kompilator sobie dobrać, skąd pozyskać podstawową wiedzę na temat tego języka :)
    Z góry dziękuję :)
  • REKLAMA
  • #3 16576455
    dasej
    Poziom 32  
    Posty: 1911
    Pomógł: 165
    Ocena: 268
    Witam.

    Zastanawiam się dlaczego na Atmega8.
    Wybierz inną serię z lepszymi peryferiami i możliwościami. np 328
  • #4 16576544
    tronics
    Poziom 38  
    Posty: 5082
    Pomógł: 359
    Ocena: 845
    Cytat:
    Wybierz inną serię z lepszymi peryferiami i możliwościami. np 328

    Och tak, rzeczywiście, do timera kuchenki mikrofalowej te peryferia będą jak znalazł!
    Cytat:
    Stwierdziłem że Na Assemblerze było by to zbyt ciężkie do zrobienia a współcześnie popularny jest C i chciałbym się nauczyć

    Współcześnie popularne jest Arduino z C/C++ (pomieszane)
    Jeśli coś miałbym doradzić to np. http://mikrokontrolery.blogspot.com/p/spis-tresci.html#dzial_kursy
    Dodatkowo jak się nie ma doświadczenia w lutowaniu to chyba bardziej będą przydatne gotowce pod Arduino.
  • REKLAMA
  • #5 16576771
    dasej
    Poziom 32  
    Posty: 1911
    Pomógł: 165
    Ocena: 268
    tronics napisał:
    Dodatkowo jak się nie ma doświadczenia w lutowaniu to chyba bardziej będą przydatne gotowce pod Arduino.


    Ktoś kto pisze soft w ASM ma przejść "lego". Myślę że potrafi lutować.
  • REKLAMA
  • #6 16576837
    tronics
    Poziom 38  
    Posty: 5082
    Pomógł: 359
    Ocena: 845
    Cytat:
    Ktoś kto pisze soft w ASM ma przejść

    Większość osób kiedykolwiek robiących coś na podstawowym 8051 pisała w ASM.
    A umiejętność pisania programu dla mikrokontrolera wcale nie implikuje umiejętności lutowania. Kolega atmegę już ma, można się bawić w trawienie płytki itp. a można kupić "shield" do arduino z wyświetlaczem i przyciskami, podłączyć do płytki prototypowej z samą atmegą i mamy całość gotową w 10 minut. Ale jak kto lubi.
  • #7 16577481
    zumik998
    Poziom 15  
    Posty: 427
    Pomógł: 25
    Ocena: 70
    Napisałem pierwszy program z pomocą tego bloga o którym pisał kolega w poście #2 Mruganie diody, mikroprocesor realizuje to polecenie :)
    Jednak są w języku C jakieś takie timery jak w ASM ? Żeby odmierzać czas?
    Chodzi mi o to żeby zrobić to odliczanie jak to jest w przypadku timera w mikrofalówce
    Żeby po sekundzie zmniejszał wartość jakiejś zmiennej.
  • #9 16577988
    zumik998
    Poziom 15  
    Posty: 427
    Pomógł: 25
    Ocena: 70
    Kurcze.. Jestem początkujący bardzo w C i Nie bardzo to rozumiem.. :/ Potrzebuję wyświetlać czas na wyświetlaczach oraz co sekunde zmniejszać czas w myśl zasady działania oryginalnego sterownika.
    Jak zrobić w C takie "przemiatanie" Pomiędzy wyświetlaczami w celu wyświetlenia kilku cyfr oraz żeby w tym czasie odmierzał sekunde i po upłynięciu sekundy zmniejszał czas?
  • REKLAMA
  • #10 16578013
    tronics
    Poziom 38  
    Posty: 5082
    Pomógł: 359
    Ocena: 845
    Po nitce do kłębka, proszę przeczytać regulamin forum - nie przychodzimy po gotowce tylko wskazówki. Wskazówkę jak użyć liczników do odmierzania interwałów czasowych zawarłem w linku do tego określonego kursu. Proszę się zastanowić jak ma wyglądać algorytm, a później sukcesywnie uzupełniać kod implementując ten algorytm zamiast w ASM dla 8051 to w C dla AVR.
  • #11 16578028
    zumik998
    Poziom 15  
    Posty: 427
    Pomógł: 25
    Ocena: 70
    A Co to jest ten preskaler? I do czego służy?

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik, który wcześniej programował procesor 8051 w assemblerze, pragnie nauczyć się programowania mikrokontrolera Atmega8 w języku C. Posiada już Atmegę, programator ISP oraz oprogramowanie PROGISP. Planuje stworzyć nowy sterownik do kuchenki mikrofalowej z wyświetlaczem 7-segmentowym, który umożliwi wybór minut i sekund oraz obsługę przycisków start i stop. Uczestnicy dyskusji sugerują, aby rozważyć użycie nowszych modeli Atmegi, takich jak Atmega328, oraz polecają zasoby edukacyjne, w tym blogi i kursy online. Wskazują również na możliwość użycia platformy Arduino, co może ułatwić projektowanie. Użytkownik pyta o implementację timerów w C oraz o algorytmy do odliczania czasu, a także o pojęcie preskalera.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA