Witam
Mam problem z działaniem log10 gdy próbuję je wykonać program się nie kompiluje i wysypują się błędy. Niestety mimo wielu prób nie udało mi się samodzielnie rozwiązać problemu. Poniżej przedstawiam wycinek kodu który powoduje błędy:
Z powyższego kodu wyrzuciłem zbędne funkcje. Program kompiluje za pomocą najnowszego pakietu WinAVR. Podczas kompilacji kompilator wyrzuca mi następujące błędy:
Jestem początkujący w programowaniu, także możliwe że rozwiązanie problemu dla wielu z was będzie oczywiste.
Z góry dziękuje za wszelkie porady i sugestie.
--
pozdrawiam
demeus
Mam problem z działaniem log10 gdy próbuję je wykonać program się nie kompiluje i wysypują się błędy. Niestety mimo wielu prób nie udało mi się samodzielnie rozwiązać problemu. Poniżej przedstawiam wycinek kodu który powoduje błędy:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <string.h>
#include <math.h>
#include <stdio.h>
#include "delay.h"
#include "lcd.h"
#include "sht.h"
#include "uart.h"
uint16_t temperatura = 0;
uint16_t wilgotnosc = 0;
float temperatura_punktu_rosy = 0;
uint16_t tmp_tab[6]={0};
void inicjalizacja(void)
{
asm volatile("cli"); //Wyłączenie przerwań
LCD_init(); //Inicjalizacja LCD
Sht_init(); //Inicjacja czujnika SHT11
MCUCR = 0x00; //Wyczyszczenie rejestru MCU
GICR = 0x00; //Wyczyszczenie rejestru GICR
asm volatile("sei"); //Włączenie przerwań
UART_init();
}
void Obliczenie_punktu_rosy(void)
{
float wspolczynnik_wilg = 0;
wspolczynnik_wilg=((log10(wilgotnosc/100))-2)/0.4343 + (17.62*temperatura/100)/(243.12+temperatura/100);
temperatura_punktu_rosy=(243.12*wspolczynnik_wilg)/(17.62-wspolczynnik_wilg);
}
int main(void)
{
inicjalizacja();
while(1)
{
Pomiar_temperatury_i_wilgotnosci_SHT11();
Obliczenie_punktu_rosy();
wyniki_na_lcd();
wyniki_na_uart();
delayms(4000);
delayms(4000);
delayms(1000);
}
}Z powyższego kodu wyrzuciłem zbędne funkcje. Program kompiluje za pomocą najnowszego pakietu WinAVR. Podczas kompilacji kompilator wyrzuca mi następujące błędy:
Cytat:avr-gcc -mmcu=atmega8 sterownik_wentylatora.o sterownik_wentylatora.a -Wl,-Map=sterownik_wentylatora.map,--cref --output sterownik_wentylatora.elf
c:/winavr-20081205/bin/../lib/gcc/avr/4.3.2/../../../../avr/lib/avr4\libc.a(floatsisf.o): In function `__floatunsisf':
(.text.fplib+0x0): multiple definition of `__floatunsisf'
c:/winavr-20081205/bin/../lib/gcc/avr/4.3.2/avr4\libgcc.a(_usi_to_sf.o).text+0x0): first defined here
make.exe: *** [sterownik_wentylatora.elf] Error 1
Jestem początkujący w programowaniu, także możliwe że rozwiązanie problemu dla wielu z was będzie oczywiste.
Z góry dziękuje za wszelkie porady i sugestie.
--
pozdrawiam
demeus
