Обсуждаем контроллеры компании Atmel.
Ответить

Не подключаются библиотеки

Ср апр 21, 2021 12:38:11

Приветствую всех. Господа, подскажите пожалуйста, , никак не могу разобраться в одном вопросе, уже весь инет просерфил и все равно не разобрался. Вопрос в следующем: я использую IDE CodeVisionAVR. Мне нужна задержка, которая осуществляется при помощи функции Sleep. Для этого необходимо скачать и подключить заголовочный файл(ЗФ) «Windows.h». Я скачал, подключил (скинул этот ЗФ в папку INC ), но у меня ничего не работает, код не компилируется, выдает две ошибки:
Рисунок 1.png
(3.27 KiB) Скачиваний: 37

windef.h – это заголовочный файл, который находится в <windows.h>
Каждый раз компилятор ругается на ЗФ (windef.h и другие), которые находятся в этом файле (<Windows.h>). Я так понимаю мне необходимо скачать все эти ЗФ, что бы сам ЗФ <Windows.h> работал?
Я думал просто их удалить и все, ведь мне от этого ЗФ (<Windows.h>) нужна только функция Sleep и все, но компилятор указывает праrтически на все ЗФ, находящиеся в <Windows.h>, то есть в таком случаи нужно все удалять.
Такая же история и с ЗФ <unistd.h>, но после удаления в ней пару ЗФ, она начинается компилироваться но с предупреждениями:
Рисунок 2.png
(10.38 KiB) Скачиваний: 26

в ней, по идеи, должна присутствовать функция sleep, но когда я ее записываю вылезает ошибка:
Рисунок 3.png
(4.34 KiB) Скачиваний: 22

Хлопцы, подскажите пожалуйста, что не так я делаю?

Re: Не подключаются библиотеки

Ср апр 21, 2021 12:45:03

Вы собрались в CV под Винду программу писать ? :facepalm:

Re: Не подключаются библиотеки

Ср апр 21, 2021 12:58:59

Вы собрались в CV под Винду программу писать ? :facepalm:

нет, мне просто нужна функция Sleep. И я хочу узнать почему возникает такая проблема. Я так понял, вы хотите сказать, что это библиотека предназначена для написания софта? Но ведь только там это функция (Sleep) находится

Re: Не подключаются библиотеки

Ср апр 21, 2021 13:09:01

#include <delay.h>

...

delay_ms(1000); // миллисекунды
delay_us(1000); // микросекунды

Re: Не подключаются библиотеки

Ср апр 21, 2021 13:10:22

а что делает эта функция?
точнее, может её функционал можно по другому реализовать?

Re: Не подключаются библиотеки

Ср апр 21, 2021 13:27:12

#include <delay.h>

...

delay_ms(1000); // миллисекунды
delay_us(1000); // микросекунды

Я знаю эти функции, спасибо) но я просто хочу разобраться почему такие ошибки вылезают и как их решить, потому что у меня такая проблема не только с этой функцией. Когда я подключаю заголовочный файл (ЗФ) time.h то у меня тоже вылезают куча предупреждений, якобы функции в этом ЗФ не объявлены. Я хочу из этой ЗФ (time.h) использовать функцию time(NULL), но у меня выдает ошибку:
Error: D:\Программы\CodeVisionAVR\Проекты\ПРОЕКТ15\Проект 15.c(14): undefined symbol 'time'

Re: Не подключаются библиотеки

Ср апр 21, 2021 13:51:53

у меня в CV нет заголовочного файла time.h и следовательно функции time(), в WinAVR для 32-битных есть.

Re: Не подключаются библиотеки

Ср апр 21, 2021 13:54:54

Пусть даже не в это дело будет, буржуйские программы не любят пути на кириллице. Учтите это на будущее.

Re: Не подключаются библиотеки

Ср апр 21, 2021 13:57:37

Вы собрались в CV под Винду программу писать ? :facepalm:
наверно винду под AVR написать :))) шутка

Re: Не подключаются библиотеки

Ср апр 21, 2021 14:54:33

maksimdag0 писал(а):почему такие ошибки вылезают

Такие ошибки вылезают по причине вашего полного непонимания процесса подключения библиотек, в том числе и сторонних.
Дело в том, что во-первых, многие библиотеки платформо-зависимы и далеко не все можно скормить вашей IDE. А во вторых, самих функций в заголовочных файлах, по-хорошему, не бывает. Они поэтому и называются "заголовочные", там находятся как правило, только определения функций, константы и т.д.
Функции, которые не предоставляет "из коробки" ваш компилятор, должны быть предоставлены вами и подключены к проекту в виде, например, сишных файлов, ну и разумеется, все нужные функции должны быть определены или в подключенном заголовочном файле (что лучше), или прямо в тексте самой программы, из которой вызывается нужная функция.
Посему совет - поймите сначала методику подключения встроенных библиотек, а уже потом пробуйте тягать чужие библиотеки.

Re: Не подключаются библиотеки

Ср апр 21, 2021 15:01:32

Рубль за сто даю, всё, что ищет ТС, есть в документации по компилятору.
Но мы же лентяи, мы не хотим читать документы ... нам нужно чтобы разжевали и в рот положили ..

Re: Не подключаются библиотеки

Ср апр 21, 2021 15:39:48

maksimdag0, вы пытаетесь сделать вещь, из разряда шутки в Интернете - если ".txt" файл переимоновать в ".mp3", то можно будет послушать как текст наговаривают.
Не пытайтесь подключить "ЗВ" от других платформ, не понимая как они работают. В 99% они и не заработают вовсе и это нормально.

Re: Не подключаются библиотеки

Ср апр 21, 2021 15:48:12

Для этого необходимо скачать и подключить заголовочный файл(ЗФ) «Windows.h».

Это где-то написано или чья-та злая шютка))?

Re: Не подключаются библиотеки

Ср апр 21, 2021 16:11:27

maksimdag0 писал(а):почему такие ошибки вылезают


Посему совет - поймите сначала методику подключения встроенных библиотек, а уже потом пробуйте тягать чужие библиотеки.

Частично согласен. Я все изучал отрывками в интернете, что бы быстро сообразить, ибо времени нет вообще(работаю), но как очевидно, толкового результат не дало это, что пришлось писать сюда. Спасибо.

Добавлено after 53 seconds:
Для этого необходимо скачать и подключить заголовочный файл(ЗФ) «Windows.h».

Это где-то написано или чья-та злая шютка))?

Да, где-то я это прочитал.

Re: Не подключаются библиотеки

Ср апр 21, 2021 16:37:58

Да, где-то я это прочитал.

Ну так вы небось не применительно к написанию кода для AVR это нашли, а кода для ПК под Windows. На Си знаете ли тоже пишут и под Windows программы )

Добавлено after 2 minutes 35 seconds:
PS: Если вам нужен аналог функции sleep(), чтобы ждать в секундах, на AVR написать её можно в 4 строки:
Код:

void sleep
(unsigned int s) {
    while (
s) {
        
_delay_ms(1000);
        
s--;        
    }
}
 

Re: Не подключаются библиотеки

Ср апр 21, 2021 19:35:08

Хлопцы, подскажите пожалуйста, что не так я делаю?


Ым... Функция `Sleep` находится в одной из библиотек Windows, а не в заголовочном файле `windows.h`. А именно - в библиотеке Kernel32. И подключить библиотеки Windows можно только на Windows.

Пытаться включать в ваш код заголовочный файл `windows.h` совершенно бесполезно. Это вам не поможет подключить библитотеку.

Что странно, вы озаглавили свой вопрос словами "Не подключаются библиотеки", в то время как никаких попыток подключения библиотек не делали вообще.

Re: Не подключаются библиотеки

Ср апр 21, 2021 23:49:54

Sleep в Винде выполняется ядром (планировщиком) ОС. И это не тупое зацикливание, типа delay_ms в компилях под МК, а установка состояния потока в паузу, отдавая всё это время остальным потокам.
Что хотел получить ТС, и чем он руководствовался - вообще не понятно :dont_know:

Добавлено after 2 minutes 32 seconds:
maksimdag0, я уже намекнул про документацию на ваш компиль, спрошу теперь прямо - Вы пытались её почитать ?

Re: Не подключаются библиотеки

Чт апр 22, 2021 09:27:15

Добавлено after 2 minutes 35 seconds:
PS: Если вам нужен аналог функции sleep(), чтобы ждать в секундах, на AVR написать её можно в 4 строки:
Код:

void sleep
(unsigned int s) {
    while (s) {
        _delay_ms(1000);
        s--;        
    
}
}
 
[/uquote]
Да, это как вариант. Спасибо

Добавлено after 1 minute 45 seconds:
Sleep в Винде выполняется ядром (планировщиком) ОС. И это не тупое зацикливание, типа delay_ms в компилях под МК, а установка состояния потока в паузу, отдавая всё это время остальным потокам.
Что хотел получить ТС, и чем он руководствовался - вообще не понятно :dont_know:

Добавлено after 2 minutes 32 seconds:
maksimdag0, я уже намекнул про документацию на ваш компиль, спрошу теперь прямо - Вы пытались её почитать ?

Я пытался ее найти, но у меня ничего не вышло, так как особо не понимаю какою именно документацию необходимо изучать. Если не сложно можете мне скинуть сайт, где находится эта документация?

Re: Не подключаются библиотеки

Чт апр 22, 2021 09:47:40

Отличный сайт с кучей информации - это микрочип ком. На русском - это микросин, чипэнабле, народстрим...

Re: Не подключаются библиотеки

Чт апр 22, 2021 09:50:29

Я пытался ее найти, но у меня ничего не вышло, так как особо не понимаю какою именно документацию необходимо изучать. Если не сложно можете мне скинуть сайт, где находится эта документация?

Вы вообще не искали видимо: http://www.hpinfotech.ro/cvavrman.zip
Ответить