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
SP5FCS Offline
Adam
*****

Liczba postów: 1,072
Dołączył: 02-02-2009
Post: #152
RE: Programowanie w języku C w środowisku AVR Studio4
Skoro zaproponowałem uporządkowanie plików w tym kursie to na początek pokażę jak to powinno wyglądać, może na przykładzie wyświetlacza LCD. Nowa biblioteka sklada się z dwóch plików:
- pliku źródłowego alfa_lcd.c;
- pliku nagłówkowego alfa_lcd.h

Plik nagłówkowy musi być wczytany w każdym module, który chce korzystać z funkcji napisanych dla wyświetlacza. Plik zawiera definicję nazw pinów do obsługi wyświetlacza oraz prototypy funkcji które będą dostępne w innych modułach. Do zabezpieczenia przed wielokrotnym wczytywaniem pliku nagłówkowego w wielu modułach służą dyrektywy kompilatora do warunkowej definicji ( #ifndef, #endif ).

Kod:
/* Plik naglowkowy dla wyswietlacza alfanumerycznego LCD
----------------------------------------------------------------
dyrektyw kompilatora do podlaczenia pliku naglowkowego
#include "alfa_lcd.h"        //plik noglowkowy dla alfa. LCD

----------------------------------------------------------------*/
#ifndef    alfa_lcd_h
#define alfa_lcd_h            //definicja warunkowa

//Konfiguracja - na którym porcie i na wyprowadzeniach puszczamy sterowanie LCD
//Pamiętajcie że numeracja wyprowadzeń PORTU zaczyna sie od "0"

#define     DEF_PORT    DDRD        // DDRA, DDRB, DDRC, DDRD - port do obsługi wyświetlacza
#define    LCD_PORT    PORTD        //wpisujemy, który port ma wysyłać dane do wyświetlacza
                                    //podłączamy odpowiednio do wyjść D7, D6, D5, D4 wyświetlacza
#define    LCD_RS        3        //które wyprowadzenie PORTU będzie linią RS
#define     LCD_E        2        //które wyprowadzenie portu ma być linią E

//Prototypy funkcji
void init_lcd(void);    
void bajt_lcd(unsigned char znak);
void napis_lcd(char tab[]);

#endif
//--------------------------------------------------------------

Plik źródłowy na początku wczytuje własny plik nagłówkowy aby mieć te same definicje pinów, wcześniejsze wczytanie prototypów funkcji też nie przeszkadza a czasem przy skomplikowanych powiązaniach pomiędzy funkcjami nawet się przydaje.
W tym pliku umieszczamy kod źródłowy funkcji wyświetlacza. Bywa tak, że znajdują się tu również pomocnicze funkcje, nazw których nie umieszczamy w pliku nagłówkowym ponieważ są one potrzebne tylko w module wyświetlacza.

İmage

Na załączonym obrazku ekran z AVRstudio, na liście plików źródłowych widzimy dodatkowy plik do kompilacji alfa_lcd.c a na liście wczytanych plikow nagłówkowych alfa_lcd_h. Analogicznie należy przerobić plik z funkcjami do obsługi AD9951.
Zmodyfikowane pliki w załączniku, kompilacja poprawna, nie mam w tej chwili modułu do sprawdzenia w układzie.


Załączone pliki
.zip  nowy_sp5fcs.zip (Rozmiar: 54.29 KB / Pobrań: 794)

73 Adam
13-05-2012 9:36
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 - SP5FCS - 13-05-2012 9:36

Skocz do:


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