Witam. Chciałbym wygenerować fragment kodu w C i wstawić do programu asm.
Napisałem coś takiego:
a kompilator generuje mi 128 bajtów kodu, czyli ustawia jakieś przerwania itp. a obliczeń nie ma.
Dopiero kiedy obliczenia są jako oddzielna funkcja wywoływana z main:
generuje się 1.6 kB kodu, czyli chyba ok. Dlaczego?
Pytanie drugie - dlaczego nie mogę zdefiniować rodzaju zmiennych tak:
float a = int b / int c; ???
przecież b i c mogą być całkowite a tylko wynik chcę float.
Dopiero jak zrobię:
float a = float b / float c;
to jest ok.
Jak wywołać funkcje np. bibliotek math.h z poziomu asm AVR Studio? Wiem że trzeba jakieś Extern, ale nie wiem jak dokładnie to zrobić, co trzeba dołączyć i gdzie itd... Kiedy np. piszę na początku jak w C - #include <math.h> to mi zgłasza błąd. Proszę o pomoc.
I ostatnie pytanie - jaki program polecacie do zamiany odwrotnej - .hex na .asm?
Napisałem coś takiego:
----------------------------------------
#include <avr/io.h>
#include <math.h>
float biel = 4321;
float rgbfd;
float pom = 1234;
int wyn;
char wsp = 105;
int main(void)
{
rgbfd = biel / (pom - 25);
wyn = log10 (rgbfd) * wsp;
PORTC = wyn;
return (0);
}
-------------------------------------
a kompilator generuje mi 128 bajtów kodu, czyli ustawia jakieś przerwania itp. a obliczeń nie ma.
Dopiero kiedy obliczenia są jako oddzielna funkcja wywoływana z main:
-----------------------------------
int main(void)
{
int wylicz(void);
wyn = wylicz;
PORTC = wyn;
return (0);
}
int wylicz(void)
{
rgbfd = biel/(pom-25);
wyn = log10(rgbfd) * wsp;
return wyn;
}
----------------------------------------------
generuje się 1.6 kB kodu, czyli chyba ok. Dlaczego?
Pytanie drugie - dlaczego nie mogę zdefiniować rodzaju zmiennych tak:
float a = int b / int c; ???
przecież b i c mogą być całkowite a tylko wynik chcę float.
Dopiero jak zrobię:
float a = float b / float c;
to jest ok.
Jak wywołać funkcje np. bibliotek math.h z poziomu asm AVR Studio? Wiem że trzeba jakieś Extern, ale nie wiem jak dokładnie to zrobić, co trzeba dołączyć i gdzie itd... Kiedy np. piszę na początku jak w C - #include <math.h> to mi zgłasza błąd. Proszę o pomoc.
I ostatnie pytanie - jaki program polecacie do zamiany odwrotnej - .hex na .asm?
