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

Ogromny kod wynikowy w C Attiny2313??

marcino1004 30 Gru 2011 11:50 1073 5
REKLAMA
  • #1 10322912
    marcino1004
    Poziom 10  
    Witam
    Z góry proszę o wyrozumiałość. Nie rozumiem dlaczego poniższy kod zajmuje 200% pamięci programu i procesora??Dodam że piszę w środowisku eclipse ganymede. Program ma sterować stroboskopem ledowym.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 10322930
    BoskiDialer
    Poziom 34  
    Makro _delay_ms nie może być używane ze zmienną jako argumentem - tylko stała wartość. Jeśli chcesz mieć opóźnienie o zmiennej długości, zrób pętlę wykonywaną ileś tam razy, a w każdej iteracji usypiaj o 1ms.
  • REKLAMA
  • #3 10322944
    marcino1004
    Poziom 10  
    wielkie dzięki kolego!
    wiedziałem że problem leży w jakiejś błachostce.
  • REKLAMA
  • #4 10323012
    kiziu13
    Poziom 17  
    Tak z ciekawości zapytam, po co takie fragmenty kodu jak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Przecież te zmienne są inicjalizowane zerami, więc obliczenia na nich przed pierwszym whilem są całkowicie zbędne.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Tu miało być raczej czyszczenie w drugiej operacji na porcie.
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    To i tak się nie wykona, bo poprzedni while się nie kończy.
  • REKLAMA
  • #6 10343720
    marcino1004
    Poziom 10  
    Zmienne nie są inicjalizowane zerami bo to jest niepoprawiony kod:p
    Drugi błąd też został wyeliminowany, ponieważ wstępnie ten kod pisałem na szybko:)
    A co do ostatniej pętli to poradził mi to jeden kolega kiedyś, wspominając coś o jakichś błędnych adresach przy kompilacji ale nie wiem czy to prawda czy nie.W każdym bądź razie jak dobrze zauważyłeś że nigdy się nie wykona więc w niczym nie przeszkadza. A tak w ogóle to temat już zamknięty:)
    Pozdrawiam
REKLAMA