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

[c/avr gcc] problem z kompilacja pamieci SRAM

sunfires 24 Lis 2009 17:31 1993 8
REKLAMA
  • #1 7303278
    sunfires
    Poziom 9  
    // Testowanie zmiennych i stałych w pamieci SRAM
    #include <avr/io.h> // dostep do rejestrów
    #include <stdlib.h> // zawiera m.in. deklaracje funkcji itoa
    #include "global.h" // zawiera definicje typów całkowitych
    #include "uart.h" // obsługa portu szeregowego
    // zamiana nazw funkcji (zobacz do uart.h)
    #define getchar UART_getchar
    #define putstr UART_putstr
    void putint(int value) // wysyła na port szeregowy tekst value
    {
    char string[4]; // bufor na wynik funkcji itoa
    itoa(value, string, 10); // konwersja value na wartosc dziesietna
    putstr(string); // wyslij string na port szeregowy
    }
    void puttekst(int value) // wyswietla tekst z liczba
    {
    putstr("\n\rSpodziewamy sie wartosci ");
    putint(value);
    putstr(" - wyslij dowolny znak...\n\r");
    }
    const pazdziernik = 10;
    int main( void ) // program główny
    {
    u08 val = 8; // deklaracja i inicjalizacja zmiennej
    register u08 val2 = 12; // deklaracja zmiennej w rejestrze
    UART_init(); // inicjalizacja portu szeregowego
    puttekst(8); // spodziewamy sie 8
    getchar(); // czekaj na znak z portu szeregowego
    putint(val); // wyswietl val
    val = 130; // zmien wartosc zmiennej
    puttekst(130); // spodziewamy sie 130
    getchar(); // czekaj na znak z portu szeregowego
    putint(val); // wyswietl val
    puttekst(12); // spodziewamy sie 12
    getchar(); // czekaj na znak z portu szeregowego
    putint(val2); // wyswietl val2
    puttekst(10); // spodziewamy sie 10
    getchar(); // czekaj na znak z portu szeregowego
    putint(pazdziernik); // wyswietl pazdziernik
    pazdziernik=3; // próba zmiany wartosci stałej
    puttekst(3); // spodziewamy sie 3
    getchar(); // czekaj na znak z portu szeregowego
    putint(pazdziernik); // wyswietl pazdziernik
    while(1); // petla nieskonczona
    }


    Jak zapewnie wiadomo jest to jeden z najpopularniejszych poradników/kursów ale proszę o pomoc jak to skompilować. Używam programy avr studio i mam problem 10 erorów:

    ../gkjhkgh.c:5:77: error: avr/global.h: No such file or directory
    ../gkjhkgh.c:6:66: error: avr/uart.h: No such file or directory
    ../gkjhkgh.c: In function 'putint':
    ../gkjhkgh.c:16: warning: implicit declaration of function 'UART_putstr'
    ../gkjhkgh.c: At top level:
    ../gkjhkgh.c:26: warning: type defaults to 'int' in declaration of 'pazdziernik'
    ../gkjhkgh.c: In function 'main':
    ../gkjhkgh.c:30: error: 'u08' undeclared (first use in this function)
    ../gkjhkgh.c:30: error: (Each undeclared identifier is reported only once
    ../gkjhkgh.c:30: error: for each function it appears in.)
    ../gkjhkgh.c:30: error: expected ';' before 'val'
    ../gkjhkgh.c:31: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'val2'
    ../gkjhkgh.c:31: error: 'val2' undeclared (first use in this function)
    ../gkjhkgh.c:33: warning: implicit declaration of function 'UART_init'
    ../gkjhkgh.c:36: warning: implicit declaration of function 'UART_getchar'
    ../gkjhkgh.c:37: error: 'val' undeclared (first use in this function)
    ../gkjhkgh.c:53: error: assignment of read-only variable 'pazdziernik'
    make: *** [gkjhkgh.o] Error 1
    Build failed with 10 errors and 4 warnings...

    W jak mam dodać te biblioteki (irytuje mnie odpowiedź wykładowcy że musimy sami pomyśleć)

    I po co próbować zmienić coś czego zmienić nie można, chodzi o stałą pazdziernik.
  • REKLAMA
  • #2 7303306
    mirekk36
    Poziom 42  
    No ja bym powiedział na to, że wykładowca ma rację - warto samemu pomyśleć i rozgryźć skąd się biorą te błędy - bo dzięki temu sporo można się nauczyć - poważnie. Tym bardziej, że macie w opisach błędów podane wszystko jak na talerzu a zadanie jest proste jak przysłowiowy drut w takim razie
  • #3 7303368
    sunfires
    Poziom 9  
    Proste jak drut tym bardziej ze dostajesz pdf i róbta co chceta tak by działało, wiem że nie znajduje biblioteki ale jak ma ją znaleźść?
  • REKLAMA
  • #4 7303389
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Nie znajduje Ci pliku i my mamy powiedzieć jak go masz znaleźć? Czy my mamy dostęp do Twojego kompa? Nie znajduje Ci go bo go nie ma tam gdzie być powinien, czyli w tym samym katalogu co plik źródłowy - resztę niestety musisz zrobić sam.

    4\/3!!
  • REKLAMA
  • #5 7303444
    mirekk36
    Poziom 42  
    sunfires napisał:
    Proste jak drut tym bardziej ze dostajesz pdf i róbta co chceta tak by działało, wiem że nie znajduje biblioteki ale jak ma ją znaleźść?



    sunfires napisał:
    W jak mam dodać te biblioteki (irytuje mnie odpowiedź wykładowcy że musimy sami pomyśleć)



    no to już zaczyna być niebezpieczne prawie - jeśli studenta irytuje to, że wykładowca chce aby student sam pomyślał. SZOK!!!! ;) (nie wiem czy wiesz ale generalnie to od samej podstawówki nauczyciele starają się, żeby uczeń jak najszybciej uczył się samodzielnego myślenia. Czy ty uważasz, że studia i wykładowcy na uczelniach powinni mieć zakaz stosowania takich niecnych praktyk?)
  • REKLAMA
  • #6 7303848
    sunfires
    Poziom 9  
    Ta cała polemika jest bez sensu. Szkoda gadać, napisałem tutaj bo chiałem uzyskać tylko odpowiedzi na moje pytania. Nie posiadam tych bibliotek na moim komputerze niestety. Aczkolwiek bez nich nie jestem w stanie zrobić częsci dalszej czyli:
    Zmodyfikowac powyzszy program tak, aby uzyskac program wysyłajacy na port
    szeregowy wartosc odczytana z zadanego portu wejsciowego i piszacy przesłane
    wartosci na zadany port wyjsciowy

    przyznaje ze jestem noga z programowania, studiuje informatyke z mysla o kierunku grafika komputerowa ale niestety do dopiero od 3 roku a do tej pory muszę się meczyć z takimi przedmiotami jak programowanie obiektowe, czy systemy mikroprocesorowe.

    Z drugiej strony robicie niepotrzebny spam, zadałem 2 konkretne pytania więc proszę was...
  • #7 7304564
    Freddie Chopin
    Specjalista - Mikrokontrolery
    Jak ich nie masz to musisz zrobić tak, żeby je mieć. Sposobów na to jest kilka...

    Jakiej porady oczekujesz? Co niby mielibyśmy napisać ponad to, że bez funkcji odbioru i wysyłania nic z twojego programu nie będzie?

    4\/3!!
  • #9 10109399
    Qbix87
    Poziom 10  
    Rok już minął , problem pozostał.
    mój problem z w.w. programem jest taki , że pomimo bibliotek (tu jeszcze proces myślowy był w miarę sprawny) i pomimo, że program działa , wciąż nie czeka na sygnał z portu szeregowego.
    No i sama sprawa z zadaniem od wykładowcy. Muszę przerobić program jak wyżej napisano :
    "Zmodyfikowac powyzszy program tak, aby uzyskac program wysyłajacy na port
    szeregowy wartosc odczytana z zadanego portu wejsciowego i piszacy przesłane
    wartosci na zadany port wyjsciowy"

    Proszę o pomoc, ponieważ w tym momencie moja licha wiedza z programowania ATMegi już mi nie pomoże.
REKLAMA