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

Atmega8 - Błąd kompilacji przy użyciu potencjometru cyfrowego SPI

Osator90 30 Mar 2016 19:01 942 5
REKLAMA
  • #1 15567238
    Osator90
    Poziom 10  
    Witam. Potrzebuję uruchomić potencjometr cyfrowy. Wykorzystałem program z tego tematu https://www.elektroda.pl/rtvforum/topic1998100.html, który rzekomo działa.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Ale u mnie go nie kompiluje, wywala mi takie błędy.

    main.c: In function 'spi_init':
    main.c:15: error: 'DDRB' undeclared (first use in this function)
    main.c:15: error: (Each undeclared identifier is reported only once
    main.c:15: error: for each function it appears in.)
    main.c:15: warning: implicit declaration of function '_BV'
    main.c:15: error: 'PB0' undeclared (first use in this function)
    main.c:16: error: 'PB2' undeclared (first use in this function)
    main.c:17: error: 'PORTB' undeclared (first use in this function)
    main.c:18: error: 'PB3' undeclared (first use in this function)
    main.c: In function 'spi_write':
    main.c:26: error: 'PORTB' undeclared (first use in this function)
    main.c:26: error: 'PB3' undeclared (first use in this function)
    main.c:31: error: 'PB0' undeclared (first use in this function)
    main.c:33: error: 'PB2' undeclared (first use in this function)
    make.exe: *** [main.o] Error 1
  • REKLAMA
  • Pomocny post
    #2 15567294
    el2010tmp
    Poziom 25  
    Brak pliku nagłówkowego z definicjami.
    Dopisz na samej górze:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 15567391
    Osator90
    Poziom 10  
    Już lepiej :) Ale

    main.c:15: warning: function declaration isn't a prototype
    main.c: In function 'spi_init':
    main.c:50: warning: 'main' is normally a non-static function
    main.c:54: error: expected declaration or statement at end of input
    make.exe: *** [main.o] Error 1

    > Process Exit Code: 2
    > Time Taken: 00:01
  • REKLAMA
  • #4 15567421
    el2010tmp
    Poziom 25  
    Brakuje prototypu funkcji: void spi_init() natomiast funkcja uint16_t spi_transmit16(uint16_t cmd) zdefiniowane jest we wnętrzu spi_init().

    Dodaj prototyp:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    ponad definicją.

    Wywal definicję uint16_t spi_transmit16(uint16_t cmd) poza funkcję spi_init() (nie zapomnij o prototypie).
  • REKLAMA
  • #5 15567614
    Osator90
    Poziom 10  
    Ok. program kompiluje, tylko który parametr odpowiada za zmianę rezystancji

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
REKLAMA