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

[AVR][C] Codevision - nie akceptuje rozkazów C

netMaster 27 Wrz 2008 20:07 1604 8
  • #1 5577121
    netMaster
    Poziom 13  
    Proszę o pomoc,
    kompilator pisze: undefindet symbol.....
    np przy rozkazach sdi, cdi, TIFR=1<<TOV0

    nie dodałem jakiejs biblioteki czy co ??
    co robić,
    jak pisze prosty programik np zapal leda czy czytaj port to dziala, ale uzywajac rozkazów :
    zmienna=PIND, PORTD.2=1 PORTD=0x0d

    do tego jeszcze nie mogę tez napisać tak nie wiem czemu
    i- zmienna funkcji
    
    for(i=1;i<8;i++)
    {
    PORTB.i=1
    }
    

    uzywam codevision , programuje winpic800 gtp-usb+, płytka ewaluacyjna EVBavr04 - atmega8

    z gory dzieki za pomoc
    pozdrawiam
  • #2 5577763
    bobbyAIR
    Poziom 20  
    zumek napisał:

    A gdzie się podziało ę itp. ?
    Prosze poprawić treść.




    A więc zaczynając od początku, czyli podstaw C, to pomijając jak by nie były stworzone biblioteki dla CodeVision to nie ma możliwości aby taki kod
    
    for(i=1;i<8;i++)
    {
    PORTB.i=1
    } 
    

    kiedykolwiek działał nawet jeśli PORTB było strukturą o polach nazwanych liczbami (w C nazwa zmiennej nie może zaczynać się od cyfry, w żadnym znanym mi języku nie może). Mimo to twoje PORTD.2 jeszcze dałoby się zdeklarować makrem ale pewnie takiej deklaracji też nie ma ze względu na kompatybilność z GCC ( nie wiem czy CodeVision go nie używa).

    Może na początek warto poczytać o używanym kompilatorze, poszukać jakiś tutorial albo informacji na sieci
  • #3 5577848
    netMaster
    Poziom 13  
    czytałem ile się dalo, codevision ma dobry help ale nie na wszytko znajduje odpowiedz,
    mam 2 ksiazki o C na AVR i tam jest for (....) {cbi(PORTB,i) } ja to rozumiem ale CV mowi że nie zna cbi :(
    nie chce tez skasowac flagi przepełnienia bo nie zna TOV0
    co robie źle??
  • #4 5578264
    bobbyAIR
    Poziom 20  
    Jezyk C na pewno zna instrukcje typu
    
    PORTB |= (1<<i);    // set 
    PORTB &= ~(1<<i); //reset
    PORTB ^= (1<<i);   //toogle
    

    Co do TOV, PBo itp. możez sam sobie je zdeklarować. CV chyba tego nie robi
  • #5 5582262
    netMaster
    Poziom 13  
    a do czego służy instrukcja PORTB ^= (1<<i); //toogle ??
    nie moge się połapać,
    dzieki za tamto , juz dodałem sobie do biblioteki tov0 :)
  • #7 5582825
    netMaster
    Poziom 13  
    uwielbiam gdy ktoś chce szczerze pomóc w rozwiązaniu problemu,
    cztery translatory na necie po wpisaniu w google translator odpowiadają "nie znaleziono tłumaczenia" wiec doszedłem do wniosku ze to nie jest jakieś słówko tylko poprostu komenda a slownika ksiażkowego nie mam niestety, wiec jezeli możesz pomoc to bardzo prosze.
    pozdrawiam
  • Pomocny post
    #8 5582850
    d.d
    Poziom 20  
    Pisze się toggle .
    tłumaczenie -
    Rzeczownik: przełącznik, przetyczka, sprężacz
    Czasownik: przełączać

    PORTB ^= (1<<i);   zmienia stan portu na przeciwny
  • #9 5582887
    netMaster
    Poziom 13  
    dzieki wielkie :)
    mysle ze mozna zamknac temat
    pozdrawiam
REKLAMA