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

Gdzie znaleźć bibliotekę avr/io.h dla attiny 2313 w Keil?

piter_58 29 Sie 2007 20:22 2805 10
  • #1 4229709
    piter_58
    Poziom 11  
    Posty: 41
    Ocena: 5
    Szukałem i nie mogę znaleść :( POtrzebuję bibliotek do keila dla procesora attiny 2313 a w szczególności avr/io.h Bardzo proszę o pomoc i nie odsyłanie mnie do internetu i strony keila. Dopiero zaczynam zabawę z tym prockiem i nie bardzo mogę sobie z nim poradzić.
  • #2 4230030
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    piter_58 napisał:
    Szukałem i nie mogę znaleść :( POtrzebuję bibliotek do keila dla procesora attiny 2313 a w szczególności avr/io.h Bardzo proszę o pomoc i nie odsyłanie mnie do internetu i strony keila. Dopiero zaczynam zabawę z tym prockiem i nie bardzo mogę sobie z nim poradzić.

    A co masz za Keil-a , że "robi" AVR- y - pierwsze słyszę ;)

    Piotrek
  • #3 4230136
    piter_58
    Poziom 11  
    Posty: 41
    Ocena: 5
    Hmm... Mam keila 3 ale dopiero się przerzuciłem z 89s52 na attiny no może rzeczywiście w tym tkwi problem że keil nie programuje avr-ów ale dzieki za wprowadzenie na dobrą drogę. A czego najlepiej używać oprócz keila do programowania w C avr-ów?
  • #4 4230172
    snow
    Poziom 31  
    Posty: 1825
    Pomógł: 178
    Ocena: 201
    winavr
  • #5 4242054
    piter_58
    Poziom 11  
    Posty: 41
    Ocena: 5
    No dobra a gdzie mogę znalesc bibliotekę avr/io.h
    Chodzi mi kontretnie o nią i proszę o nie odsyłanie mnie do internetu.
  • #6 4242124
    zumek
    Poziom 39  
    Posty: 3352
    Pomógł: 695
    Ocena: 52
    piter_58 napisał:
    No dobra a gdzie mogę znalesc bibliotekę avr/io.h
    Chodzi mi kontretnie o nią i proszę o nie odsyłanie mnie do internetu.

    Jeśli zainstalowałeś WinAVR np. na partycji C, to ten plik nagłówkowy znajduje się w katalogu C:\WinAVR\avr\include\avr.
    Ależ jesteś tajemniczy ;)

    Piotrek
  • #7 4243339
    firefox_PL
    Poziom 17  
    Posty: 235
    Pomógł: 21
    Ocena: 2
    możesz też spróbować CodeVisionAVR, ma troche swoich bibliotek obsługi różnych rzeczy, jedyny minus to ograniczenie wielkości wynikowego pliku w wersji darmowej
  • #8 4249001
    piter_58
    Poziom 11  
    Posty: 41
    Ocena: 5
    Próbowałem z Programmer's Notepad z WinAvr na prostym programie:
    #include <avr/io.h>                        // dostęp do rejestrów
    
    int main( void )                        // program główny
    {
      sbi(DDRD,4);                                // użyj linii PD4 jako wyjścia
      sbi(PORTD,3);                                // "podciągnij" do logicznej 1 linię PD3
    
      while(1)                                // pętla nieskończona
      {
        cbi(PORTD,4);                        // zapal diodę LED podłączoną do linii PD4
        loop_until_bit_is_clear(PIND,3);        // czekaj na naciśnięcie przycisku na PD3 
        sbi(PORTD,4);                        // zgaś diodę LED podłączoną do linii PD4
        loop_until_bit_is_clear(PIND,3);        // czekaj na naciśnięcie przycisku na PD3 
      }
    }


    Ale za każdym razem otrzymuje błędy:

    > "make.exe" all
    
    -------- begin --------
    avr-gcc (GCC) 4.1.2 (WinAVR 20070525)
    Copyright (C) 2006 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    
    Compiling C: test.c
    avr-gcc -c -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./test.lst  -std=gnu99 -Wundef -MMD -MP -MF .dep/test.o.d test.c -o test.o 
    test.c: In function 'main':
    test.c:5: warning: implicit declaration of function 'sbi'
    test.c:10: warning: implicit declaration of function 'cbi'
    test.c:15:2: warning: no newline at end of file
    
    Linking: test.elf
    avr-gcc -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=test.o  -std=gnu99 -Wundef -MMD -MP -MF .dep/test.elf.d test.o --output test.elf -Wl,-Map=test.map,--cref     -lm
    test.o: In function `main':
    C:\Documents and Settings\Piotr\Moje dokumenty\test2/test.c:4: undefined reference to `sbi'
    C:\Documents and Settings\Piotr\Moje dokumenty\test2/test.c:6: undefined reference to `sbi'
    C:\Documents and Settings\Piotr\Moje dokumenty\test2/test.c:10: undefined reference to `cbi'
    C:\Documents and Settings\Piotr\Moje dokumenty\test2/test.c:12: undefined reference to `sbi'
    make.exe: *** [test.elf] Error 1
    
    > Process Exit Code: 2
    > Time Taken: 00:04
    


    Z plikiem makefile jest napewno ok. Już nie wiem co robie źle. Zastanawiałem sie czy moze nalezy skopiowac pliki z nagłówka do folderu z programem ale to tez nie pomaga.
    I mam jeszcze pytanie czy chcąc używać AVR Studio musze skopiowac biblioteki z WinAvr w inne miejsce aby móc sie do nich odwoływać? Mam ich w standardowym miejscu po zainstalowaniu WinAVR. Bede wdzieczny za jaka kolwiek pomoc.
  • #9 4249012
    snow
    Poziom 31  
    Posty: 1825
    Pomógł: 178
    Ocena: 201
    W tej wersji WinAvr nie ma poleceń sbi i cbi. Więc albo zastąp je np. przez _BV() albo przez (1<<PB0). Ewentualnie załącz bibliotekę compat/deprecated.h
  • #10 4249032
    piter_58
    Poziom 11  
    Posty: 41
    Ocena: 5
    Dzięki za pomoc a moze jakis namiar na "dobrego" WinAvr-a?
  • #11 4249036
    snow
    Poziom 31  
    Posty: 1825
    Pomógł: 178
    Ocena: 201
    A ten jest zły? Te makra (sbi i cbi) obowiązywały do wersji 2006 zdaje się, później zostały zastąpione przez inne makra. Żadna nowsza wersja WinAvr raczej nie będzie wspierać starych makr. Podejrzyj ten plik .h to zobaczysz czym to można zastąpić takie makro i wtedy będzie ci raczej na każdym nowym chodzić.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukiwał biblioteki avr/io.h dla mikrokontrolera ATtiny2313 do użycia w środowisku Keil, jednak Keil w wersji 3 nie obsługuje programowania AVR, co zostało wskazane jako główna przeszkoda. Zamiast Keila, zaproponowano użycie WinAVR, gdzie plik avr/io.h znajduje się w katalogu instalacyjnym (np. C:WinAVRavrincludeavr). Alternatywnie zasugerowano CodeVisionAVR, który posiada własne biblioteki, choć darmowa wersja ma ograniczenia. W dyskusji poruszono także problem makr sbi i cbi, które w nowszych wersjach WinAVR zostały wycofane i należy je zastąpić makrami _BV() lub przesunięciami bitowymi (1
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA