Odpowiedz 
 
Ocena wątku:
  • 3 Głosów - 3.33 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie w języku C w środowisku AVR Studio4
SP4EJT Offline
Marcin
****

Liczba postów: 340
Dołączył: 06-05-2011
Post: #30
RE: Programowanie w języku C w środowisku AVR Studio4
Własnie tego jeszcze do końca nie rozgryzłem - raz to działa raz nie - nie wiem o co chodzi.
W takim razie napewno pomoże ci wpis w głównym pliku programu (lcd.c) na samej górze #define F_CPU 16000000
Sprawdzam pracę domową z postu#4 kolegi SQ6IYY. Zadanie brzmiało:
Kto bardziej kumaty - niech spróbuje zrobic tak aby dioda i przycisk działały na tym samym Porcie np. na Porcie A dioda niech zostanie na A0 a przycisk dajcie na A7.
Chyba byłem pijany bo wcześniej nie zakumałem że on pokazał mi efekty swojej pracy. Do rzeczy ... to kod napisany przez SQ6IYY
Kod:
#include <avr/io.h>            // czyli tu dla kompilatora jest cała zawartość pliku io.h (nie wnikajcie teraz gdzie jest ten plik
#include <util/delay.h>        // tu podobna historia do powyższej

int main(void)
     {
     DDRA = 0b00000001;    
       PORTA= 0b10000000;    
      while(1)
         {
         if(bit_is_clear(PINA, 0))    
        
             PORTA=PORTA^0b00000001;  
             _delay_ms(160);            
             }  
         }
Dobrze kombinował ale to raczej poprawnie nie zadziała, poniżej kod z komentarzami do błędów Michała (nie ma tam linii z "#include...." bo szkoda miejsca - oczywiście są one potrzebne do działania
Kod:
int main(void)
     {
     DDRA = 0b00000001;    
     PORTA= 0b10000000;    
     while(1)
         {
         if(bit_is_clear(PINA, 7))  /* przycisk na A7 - Michał miał na A0, a tam jest dioda */
               {         /* nie było nawiasu "otwierającego" zawartość instrukcji "if" */
               PORTA=PORTA^0b00000001;  
               _delay_ms(160);            
               }  
          }
      }     /* brakowało mawiasu "zamykającego" funkcje główną(main) */
ogólnie z tymi nawiasami jest tak że liczba nawiasow " { " powinna być równa liczbie nawiasów " } " bo każda funcja ma postać :
Kod:
jakas_funkcja_lub_instrukcja(jakis_warunek_lub_arr​gument)
    {                // nawias "otwierający"
    jakies_polecenia;
    }                // nawias "zamykający"
Nie ważne czy w liście poleceń funkcji/instrukcji są inne funkcje/instrukcje - trzeba ZAWSZE trzymać się tej zasady
Chyba czas opisać teraz zasadę działania kilku instrukcji z których juz korzystalismy:
Instrukcja <b>for</b>
Kod:
for(wyrażenie)
    {   ciąg poleceń które wykonają się jesli wyrażenie jest spełnione(prawdziwe) }
Instrukcja <b>if</b>
Kod:
if(wyrażenie)
    {   instrukcje wykonywane jeśli wyrażenie jest prawdziwe   }
else
    {   instrukcje wykonywane jeśli wyrażenie nie jest prawdziwe    }
"else" nie musi występować jesli nie jest potrzebne.
Instrukcja <b>while</b>
Kod:
while(wyrażenie)
    {  instrukcje wykonywane "w kółko" aż do momentu kiedy wyrażenie przestanie być prawdziwe   }
Uwaga na nawiasy ! Ja umieszczałem { i } w jednej linii ale żeby sie nie pomylić który nawias jest do której instrukcji/funkcji stosujcie zasadę: "zamykajacy" nawias funkcji/instrukcji x stawiajcie zawsze pod nawiasem tejże funkcji, przykład wyjasniający poniżej:
Kod:
funcja_x(wyrażenie)
{                                       // <-- to jest nawias "otwierający" zawartość funkcji_x
    jakieś_polecenia;
    instrukcja_y(wyrażenie)
    {                                   // <-- nawias "otwierający" zawartość instrukcji_y
        jakieś_polecenia;
        instrukcja_z(wyrażenie)
        {                               // <--  nawias "otwierający" zawartość instrukcji_z
             jakieś_polecenia;
        }                               // <--  nawias "zamykający" zawartość instrukcji_z
       znowu_jakieś_polecenia;
    }                                   // <--  nawias "zamykający" zawartość instrukcji_y
}                                       // <--  nawias "zamykający" zawartość funkcji_x
Czy to jest zrozumiałe ???
(Ten post był ostatnio modyfikowany: 21-01-2012 16:06 przez SP4EJT.)
21-01-2012 14:43
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
RE: Programowanie w języku C w środowisku AVR Studio4 - SP4EJT - 21-01-2012 14:43

Skocz do:


Użytkownicy przeglądający ten wątek: 43 gości