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

ATmega, ANSI C - switch nie przerywa warunku, kod leci do końca

04 Lis 2014 18:09 1062 8
REKLAMA
  • #1 14101871
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #2 14101960
    BlueDraco
    Specjalista - Mikrokontrolery
    Tak - jak tylko wyjaśnisz, co to znaczy "nie przerywa warunku" i pokażesz cały program, z wywołaniem show() (skądinąd fatalnie napisana i zapewne całkowicie zbędna funkcja, bo zapewne wystarczyłoby napisać PORTD = tab[dig];).
  • #3 14102003
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #4 14102096
    Brutus_gsm
    Poziom 25  
    Zauważ, że po ustawieniu PORTD = num[4] nie masz żadnego oczekiwania, czyli od razu po tej intrukcji wykonuje się PORTD = num[1]. Koniec końcem będziesz widział tylko tę wartość.
  • #5 14102123
    Konto nie istnieje
    Konto nie istnieje  
  • #6 14102213
    michalko12
    Specjalista - Mikrokontrolery
    Ujemny napisał:
    for(i = 0; i < 1000000; i++)


    Jeśli używasz liczby większe niż 32767 (w przypadku AVR i nie tylko gdzie typ integer ma nie więcej niż 16 bitów ) na końcu stałej musisz zastosować sufiksy L lub UL

    1000000UL
  • REKLAMA
  • #7 14102251
    Konto nie istnieje
    Konto nie istnieje  
  • #8 14102272
    Brutus_gsm
    Poziom 25  
    Jaki jest dokładnie efekt na takim kodzie? Jakie masz ustawienia optymalizacji?

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #9 14102304
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA