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.

programowanie w C podstawy - Podstawowe programowanie w C

tomcioksy 22 Maj 2016 18:30 1179 6
  • #1 22 Maj 2016 18:30
    tomcioksy
    Poziom 2  

    Witam;)
    Przedstawię swój problem najprościej jak umiem:
    Staram się od jakiegoś czasu nauczyć programowania uC w języku C. Przeczytałem już kilka poradników znalezionych w necie oraz zakupiłem i przeczytałem całą książkę pana M. Kardasia.
    Jednak nadal zupełnie nic nie rozumiem i nawet proste mruganie dioda mi nie wychodzi i zupełnie nie wiem jak się za to zabrać.
    Wiadomo kiedy przepisze przykład to wszystko działa dioda mruga itd jednak zupełnie nie rozumiem np w jaki sposób ustawiać bity czy rejestry na wejściowe/wyjściowe czy odczytywać z nich stany bądź je przypisywać i zmieniać.
    Kiedyś zacząłem się uczyć programować w BASCOM`ie. Mruganie dioda LED czy sterowanie multipleksowe wyświetlaczy 7seg przychodziło mi z łatwością jednak wiele osób mówiło mi żebym przerzucił sie na C.
    Wiele przykładów gotowych projektów było pisanych w C i stwierdziłem że warto zmienić język.
    I o ile w BASCOM`ie przypisywanie stanów i rejestrów kierunkowych było proste i bardzo zrozumiałe tak w C zupełnie nie wiem o co chodzi.
    Czy ktoś jest w stanie wytłumaczyć mi takie podstawy w najprostszy sposób?
    W BASCOM`ie były proste zrozumiałe komendy:

    config portd=input - cały port d jako wejście
    config portd=output - cały port d jako wyjście
    config pind.0=input - wyprowadzenie PD0 jako wejście
    config pind.1=input - wyprowadzenie PD1 jako wejście

    Jakie są odpowiedniki tych komend w języku C?
    Wszystkim forumowiczom z góry dziękuję za okazałą pomoc;)

    0 6
  • #2 22 Maj 2016 19:18
    inot
    Poziom 20  

    To zależy od tego jaki program to tego celu używasz.
    Jest to uzależnione od biblioteki dla poszczególnego mikrokontrolera.
    Przykład MPLAB (Microchip):

    PLLFBD = 34;
    CLKDIVbits.PLLPOST = 0;
    CLKDIVbits.PLLPRE = 2;
    OSCTUN = 0;

    0
  • #3 22 Maj 2016 19:33
    piotrek0207
    Poziom 14  

    Ja zacząłem przygodę z mikrokontrolerami zacząłem o tych z rdzeniem ARM. Zakupiłem płytke STM32F4 Discovery. Nie miałem żadnego wcześniejszego doświadczenia w programowaniu mikrokontrolerów. Doszedłem do obsługi SPI :) Jeśli chodzi o nie polecam dobry poradnik

    https://www.elektroda.pl/rtvforum/topic3111562.html

    0
  • #4 22 Maj 2016 19:38
    tomcioksy
    Poziom 2  

    inot napisał:
    To zależy od tego jaki program to tego celu używasz.


    Używam Eclipse ;)

    np jak wygląda prosty kod powodujący mruganiem ledem co sekunde napisany w najprostszy sposób?

    Kod: C
    Zaloguj się, aby zobaczyć kod

    0
  • #5 22 Maj 2016 20:12
    arecoag
    Poziom 19  

    To przenieś się z Eclipse do Atmel Studio można pobrać całkowicie darmowe środowisko ze strony Atmela.

    0
  • #6 22 Maj 2016 20:14
    inot
    Poziom 20  

    Dobrze. Można jeszcze prościej.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Przykład innego zastosowania :
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #7 23 Maj 2016 13:28
    dondu
    Moderator Mikrokontrolery Projektowanie

    Kopalnia wiedzy + kurs C z kompilatorem online CManiak oraz kurs AVR - patrz działa "Kursy": http://mikrokontrolery.blogspot.com/p/spis-tresci.html#dzial_kursy

    Aby delay prawidłowo odliczał czas musisz wskazać jak jest ustawiony zegar taktujący: http://mikrokontrolery.blogspot.com/2011/03/fcpu-gcc-gdzie-definiowac.html

    Korzystaj z Atmel Studio, bo Eclipse nie zawiera symulatora: http://mikrokontrolery.blogspot.com/2011/04/atmel-studio-spis-tresci.html

    0