Ошибка с библиотекой time.h - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день, столкнулся с проблемой связанной с библиотекой time.h. Хочу написать автомобильный спидометр. В дальнейшем собрать бортовой компьютер. До этого я делал на arduino, все прекрасно работало. Теперь решил переписать код под микроконтроллер atmega8. И вот тут то меня и постигла ошибка, при использовании функции clock() вылезают следующие ошибки: 1. undefined reference to `clock' 2. ld returned 1 exit status Программирую я в Atmel studio 7 Вот код мое программы:
/*
 * GccApplication4.c
 *
 * Created: 02.07.2016 14:20:38
 * Author : Иван
 */ 
 
#include <avr/io.h>
#define F_CPU 8000000L  //частота микроконтреллера 8мгц
#include <time.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "n5110.h"

//глабальные переменные
    int a = 1;
    volatile unsigned int NumberMomentSpeed = 0;  
    volatile byte sz = 0;
    volatile unsigned long micros_sp = 0;
    volatile unsigned int speed = 0;
    unsigned long t = 0;
    int st = 0;

void setup()            //функция первоначальной настройки
{           
    DDRC = 0x0F;
    PORTC = 0x00;
    DDRD=0x00;
    PORTD=0xFF;
    Lcd_init();
    Lcd_clear();
}
 
void INTinit()          //инициализация прерываний
{
    MCUCR = (0<<ISC10) | (1<<ISC11);//0b00001000   регистр управления  (падающий фронт)
    GICR = (1<<INT1);//0b10000000   общий регистр управления прерываниями   (разрешить прерывание INT1)
}

ISR (INT1_vect)         //прерывание по вектору INT1
{                   //тело прерывания
    NumberMomentSpeed++;
    if (!st)
    {
        micros_sp = clock();
    }
    else
    {
        speed = (600000/(clock() - micros_sp));
    }
    st = 1;
    sz = 30;
}

void lcd_output(char bu[])      //функция вывода на экран
{
    Lcd_clear();
    Lcd_print(6,1,FONT_1X,(unsigned char*) bu);
    Lcd_update();
}

int main(void)                  //главная функция
{
 
    setup();
    INTinit();
    sei();     //Чтобы установить ручками этот бит существует функция sei(), а чтобы сбросить - cli()
 
    while (1)   //бесконечный цикл
    {
        
        if (sz != 0)
        {
            sz--;
        } 
        else 
        {        //Если нет импульсов с датчика скорости, то скорость обнулить
            speed = 0;
        }
        
        char buferd[10];
        itoa(NumberMomentSpeed, buferd, 10);
        lcd_output(buferd);
 
        }
}
Вот такие ошибки выдает при сборке этого кода: Вот такая схемка: В Cи начинающий, код возможно не очень, но мне сейчас главное решить проблему)) Буду благодарен за любые наводки)

Решение задачи: «Ошибка с библиотекой time.h»

textual
Листинг программы
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
 
SHELL := cmd.exe
RM := rm -rf
 
USER_OBJS :=
 
LIBS := 
PROJ := 
 
O_SRCS := 
C_SRCS := 
S_SRCS := 
S_UPPER_SRCS := 
OBJ_SRCS := 
ASM_SRCS := 
PREPROCESSING_SRCS := 
OBJS := 
OBJS_AS_ARGS := 
C_DEPS := 
C_DEPS_AS_ARGS := 
EXECUTABLES := 
OUTPUT_FILE_PATH :=
OUTPUT_FILE_PATH_AS_ARGS :=
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
QUOTE := "
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:=
LIB_DEP:=
LINKER_SCRIPT_DEP:=
 
# Every subdirectory with source files must be described here
SUBDIRS := 
 
 
# Add inputs and outputs from these tool invocations to the build variables 
C_SRCS +=  \
../main.c \
../n5110.c
 
 
PREPROCESSING_SRCS += 
 
 
ASM_SRCS += 
 
 
OBJS +=  \
main.o \
n5110.o
 
OBJS_AS_ARGS +=  \
main.o \
n5110.o
 
C_DEPS +=  \
main.d \
n5110.d
 
C_DEPS_AS_ARGS +=  \
main.d \
n5110.d
 
OUTPUT_FILE_PATH +=GccApplication4.elf
 
OUTPUT_FILE_PATH_AS_ARGS +=GccApplication4.elf
 
ADDITIONAL_DEPENDENCIES:=
 
OUTPUT_FILE_DEP:= ./makedep.mk
 
LIB_DEP+= 
 
LINKER_SCRIPT_DEP+= 
 
 
# AVR32/GNU C Compiler
 
 
 
 
 
./%.o: .././%.c
    @echo Building file: $<
    @echo Invoking: AVR/GNU C Compiler : 4.9.2
    $(QUOTE)C:\Program Files\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE)  -x c -funsigned-char -funsigned-bitfields -DDEBUG  -I"C:\Program Files\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.106\include"  -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega8 -B "C:\Program Files\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.106\gcc\dev\atmega8" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)"   -o "$@" "$<" 
    @echo Finished building: $<
    
 
 
 
# AVR32/GNU Preprocessing Assembler
 
 
 
# AVR32/GNU Assembler
 
 
 
 
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
 
# Add inputs and outputs from these tool invocations to the build variables 
 
# All Target
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
 
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
    @echo Building target: $@
    @echo Invoking: AVR/GNU Linker : 4.9.2
    $(QUOTE)C:\Program Files\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="GccApplication4.map" -Wl,--start-group -Wl,-lm  -Wl,--end-group -Wl,--gc-sections -mmcu=atmega8 -B "C:\Program Files\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.0.106\gcc\dev\atmega8"  
    @echo Finished building target: $@
    "C:\Program Files\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures  "GccApplication4.elf" "GccApplication4.hex"
    "C:\Program Files\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom  --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0  --no-change-warnings -O ihex "GccApplication4.elf" "GccApplication4.eep" || exit 0
    "C:\Program Files\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "GccApplication4.elf" > "GccApplication4.lss"
    "C:\Program Files\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "GccApplication4.elf" "GccApplication4.srec"
    "C:\Program Files\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "GccApplication4.elf"
    
    
 
 
 
 
 
# Other Targets
clean:
    -$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)  
    -$(RM) $(C_DEPS_AS_ARGS)   
    rm -rf "GccApplication4.elf" "GccApplication4.a" "GccApplication4.hex" "GccApplication4.lss" "GccApplication4.eep" "GccApplication4.map" "GccApplication4.srec" "GccApplication4.usersignatures"

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5