Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Микроконтроллеры других производителей

Микроконтроллеры других производителей Все, что касается микроконтроллеров и НЕ подошло в раздел Microchip.

Ответ
 
Опции темы Опции просмотра
Старый 20.02.2015, 14:49   #26
yeskela
Senior Member
 
Аватар для yeskela
 
Регистрация: 28.01.2010
Адрес: Новочеркасск
Возраст: 34
Сообщений: 1,048
Вес репутации: 3282/68
yeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond reputeyeskela has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от AleksBak Посмотреть сообщение
А можно вопрос - Вы вообще использовали какие-либо функции из <time.h> для PIC32 ?
mktime
__________________
Отсутствие доступа в интернет с рабочего места очень замедляет работу. Наличие - полностью парализует её.

Последний раз редактировалось yeskela; 20.02.2015 в 14:55.
yeskela вне форума   Ответить с цитированием
Старый 20.02.2015, 15:23   #27
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,125
Вес репутации: 2885/96
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от yeskela Посмотреть сообщение
mktime
Вроде уже начал разбираться. С утра начал использовать ее функции - и что-то не пошло у меня никак (в искл. ситуацию все время выпадал код). Плюнул и заменил с нета аналогичной функцией что нужно было. Но вот после Вашего сообщения "свежим" кодом опять применил оттуда (как раз эту mktime) и вроде все норм. Чудеса, но вроде понял от чего они. Спасибо.
AleksBak вне форума   Ответить с цитированием
Старый 20.02.2015, 20:32   #28
AleksBak
Senior Member
 
Аватар для AleksBak
 
Регистрация: 27.02.2007
Адрес: г. Баку
Сообщений: 3,125
Вес репутации: 2885/96
AleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond reputeAleksBak has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от Pridnya Посмотреть сообщение
...Компилятор ARMCC: почти все, что нужно работает, только gmtime() ерунду дает, а функция localtime() выдает время UTC без поправки на местное. Кто-нибудь знает как задать поправку на местное время (должна где-то задаваться в часах, у нас +3 должно быть, а вот компилятор MinGW дает +4).
У меня в этом хедере (time.h) есть заглушка для какой-то переменной time_zone и методом тыка вот так использовал у себя (XC32) используя уже заранее известное UTC смещение в секундах timestamp:
Код:
 
 // сначала получаем UTC время в виде структуры типа tm
 // из заданного смещения времени
 struct tm *localtm = gmtime((const time_t*) &timestamp);
 
 // указываем, что имеется переход на летнее время
 localtm->tm_isdst = TRUE;
 
 // указываем временную зону в минутах
 time_zone = -(4 * 60);
 
 // переводим значение структуры UTC времени с соотв.
 // изменениями в местное смещение в секундах
 timestamp = mktime(localtm);
 
 // теперь обратно получаем в структуре уже скорректированное
 // локальное время
 localtm = localtime((const time_t*) &timestamp);
не знаю стандартно это или нет и может у тебя не так, но потом поковырявшись уже в нете обнаружил, что есть вроде какая-то функция для установки временной зоны - tzset(). Может она тогда подойдет? Мне вроде не подходит т.к. нет ее объявления в хедере.
AleksBak вне форума   Ответить с цитированием
Старый 01.12.2016, 11:00   #29
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 37
Сообщений: 4,016
Вес репутации: 3958/109
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Всем доброго дня!
Кто сожет прояснить ситуацию с функцией time() из стандартной библиотеки time.h (ARM).
Есть функция, которая возвращает время:
Код:
typedef unsigned int clock_t;    /* cpu time type */
...
time_t time(time_t *timer);
Но после её вызова микроконтроллер зависает. С помощью отладчика обнаружил, что зависает внутри функции time() в строке с командой BKPT. Это функция в стандартной библиотеке с ошибкой или я что-то некорректно делаю?
Цитата:
The BKPT instruction causes the processor to enter Debug state.
В MinGW все работает:
Код:
time_t Timer = 0;
time_t t1 = time(&Timer);
cout << "t1 = " << t1 << endl; // t1 = 1480580022
cout << "Complete" << endl;
cout << "datetime: " << ctime(&t1) << endl;  // Thu Dec 01 11:15:37 2016
Миниатюры
Зависает в строке BKPT.PNG  
__________________
Прогресс неизбежен.

Последний раз редактировалось Pridnya; 01.12.2016 в 11:17.
Pridnya вне форума   Ответить с цитированием
Старый 01.12.2016, 11:44   #30
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 37
Сообщений: 4,016
Вес репутации: 3958/109
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от Pridnya Посмотреть сообщение
В MinGW все работает:
Код:
time_t Timer = 0;
time_t t1 = time(&Timer);
cout << "t1 = " << t1 << endl; // t1 = 1480580022
cout << "Complete" << endl;
cout << "datetime: " << ctime(&t1) << endl;  // Thu Dec 01 11:15:37 2016
На компе работает и даже так:
Код:
time_t t1 = time(NULL);
cout << "t1 = " << t1 << endl; // t1 = 1480580022
потому, что эта функция и таймер определены в операционной системе Windows, а в моем случае (микроконтроллер без RTOS) нужно переписать функцию time(), чтобы она возвращала значение моего таймера (uint32_t). Стандартная библиотека не знает, какой я таймер использую в качестве RTC, где у меня там секунды тикают.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 01.12.2016, 12:27   #31
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,100
Вес репутации: 2433/52
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Pridnya
С помощью отладчика обнаружил, что зависает внутри функции time() в строке с командой BKPT. - она не зависает. она генерирует исключение дебаггера, чтобы в нем запросить время у дебаггера время и вернуть время.
Почему у Вас дебаггер не возвращает время - вопрос открытый - нужно смотреть, как Вы реализовали код исключения дебаггера.
besogon вне форума   Ответить с цитированием
Старый 01.12.2016, 12:31   #32
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 37
Сообщений: 4,016
Вес репутации: 3958/109
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от besogon Посмотреть сообщение
Pridnya
С помощью отладчика обнаружил, что зависает внутри функции time() в строке с командой BKPT. - она не зависает. она генерирует исключение дебаггера, чтобы в нем запросить время у дебаггера время и вернуть время.
Почему у Вас дебаггер не возвращает время - вопрос открытый - нужно смотреть, как Вы реализовали код исключения дебаггера.
Впервые слышу о том, что я должен реализовывать "код исключения дебаггера". Вообще ничего на эту тему не знаю.
Мне нужно не время дебаггера, а время системное в моем микроконтроллере (счетчик секунд). Или я что-то не понимаю?
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 01.12.2016, 12:37   #33
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,100
Вес репутации: 2433/52
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Pridnya
Или я что-то не понимаю? - ну в целом Вы абсолютно правильно понимаете, как устроена библиотека времени.

может быть в Вашем решении, это вот все как-то от Вас скрыто или вроде того.
вот у iar например сделано так:
https://www.iar.com/support/resource...ock-functions/
If the debugger is available, the application can use the data/time library, and you do not need to implement anything else in order to manage time information. Below are two code examples: one using clock() and the other using time().

в целом все это зависит от конкретно реализации. мне надо сильно это все вспоминать. копать. суть одна - что во многих решениях на время отладки время просят у дебаггера. если не отладка - то используют запрос у МК.

*буду сильно занят до середины декабря - надеюсь потом будет время - поделюсь своими(правильными - вопрос открытый) мыслями насчет времени.
в целом время это всегда боль. високосные секунды, внезапные отмены летнего/зимнего(имени Медведева) и.т.д.
с posix этого нет, но все одно время от времени нужно переводить в часы/минуты и.т.д.

Последний раз редактировалось besogon; 01.12.2016 в 12:42.
besogon вне форума   Ответить с цитированием
Старый 01.12.2016, 14:08   #34
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Orel
Возраст: 37
Сообщений: 4,016
Вес репутации: 3958/109
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от besogon Посмотреть сообщение
Pridnya
Или я что-то не понимаю? - ну в целом Вы абсолютно правильно понимаете, как устроена библиотека времени.

может быть в Вашем решении, это вот все как-то от Вас скрыто или вроде того.
вот у iar например сделано так:
https://www.iar.com/support/resource...ock-functions/
Хорошая ссылка. Если сделать как описано в статье (переопределить функции и макрос), то функции clock() и time() работают как надо, как будто это функции стандартной библиотеки.
Код:
// stm32f4xx_it.c
#include <time.h>

#undef CLOCKS_PER_SEC
#define CLOCKS_PER_SEC (1000) // redefine macros from time.h 
clock_t clk_count = 0;
time_t time_dat;
clock_t clock (void) {
 return (clk_count);
}

time_t time (time_t * p) { // Зачем передавать указатель, если он не используется?
return time_dat;
}

/**
  * @brief  This function handles SysTick Handler.
  * @param  None
  * @retval None
  */
void SysTick_Handler(void)
{
clk_count ++;
if ((clk_count % CLOCKS_PER_SEC) == 0) 
  {
  time_dat ++;
  }
}
Код:
// main.c
time_t uTime = 0;
clock_t clocks = 0;

// Функции переопределены в файле stm32f4xx_it.c
extern time_t time(time_t * p);
extern clock_t clock(void);

time_t Timer = 0;
int main()
{             
SysTick_Config(168000); // Интервал системного таймера 1 миллисекунда (тактовая 168 МГц).
...
uTime = time(&Timer); // И здесь зачем указатель на Timer? Может, для установки времени (установить и прочитать)?
clocks = clock ();
Неужели нет стандартной функции для установки времени (счетчика секунд)?
__________________
Прогресс неизбежен.

Последний раз редактировалось Pridnya; 01.12.2016 в 14:14.
Pridnya вне форума   Ответить с цитированием
Старый 01.12.2016, 19:29   #35
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,092
Вес репутации: 3878/91
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

http://www.c-cpp.ru/content/time
м.б. ответ на:
Цитата:
зачем указатель
реализация из билдера:
Код:
time_t _RTLENTRY _EXPFUNC time(time_t *tloc)
{
    time_t          x;
    SYSTEMTIME st;

    GetLocalTime(&st);
    x = _totalsec(st.wYear-1900, st.wMonth-1, st.wDay-1,
                  st.wHour, st.wMinute, st.wSecond, -1);
    if (tloc)
            *tloc = x;
    return (x);
}

Последний раз редактировалось ampersant; 01.12.2016 в 19:34.
ampersant вне форума   Ответить с цитированием
Старый 02.12.2016, 12:19   #36
Consultant
Banned
 
Регистрация: 08.11.2013
Адрес: San Jose
Возраст: 65
Сообщений: 326
Вес репутации: 796/0
Consultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to behold
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от ampersant Посмотреть сообщение
http://www.c-cpp.ru/content/time
м.б. ответ на:
реализация из билдера:
Примерно это. Весь смысл заключается в том, что при чтении можно не передавать указатель, а при записи передавать. Одна функция может и читать и писать время.

А так крутая стандартная библиотека времени в armcc (time.h и особенно функция strftime()), много чего умеет, например из UnixTime (число uint32_t) вытаскивает что хочешь:
Код:
time_t rawtime = 1480685759; // Fri, 02 Dec 2016 13:35:59 GMT
struct tm * timeinfo;
timeinfo = (struct tm*)localtime(&rawtime);  // Convert time_t to tm as UTC time
char buffer [80];

strftime (buffer,80,"%I:%M%p",timeinfo);
puts (buffer);    // 01:35PM       

strftime (buffer,80,"%H:%M:%S%p",timeinfo);
puts (buffer); // 13:35:59PM   

strftime (buffer,80,"%H:%M:%S",timeinfo);
puts (buffer);   // 13:35:59       

strftime (buffer,80,"%d.%m.%y",timeinfo);
puts (buffer);   // 02.12.16

strftime (buffer,80,"%a_%A",timeinfo);
puts (buffer);   // Fri_Friday

strftime (buffer,80,"%b_%B",timeinfo);
puts (buffer);   // Dec_December

strftime (buffer,80,"%c",timeinfo);
puts (buffer);   // 02 Dec 2016 13:35:59

strftime (buffer,80,"%j",timeinfo);
puts (buffer);   // 337 (day of the year as a decimal number (001-366))

strftime (buffer,80,"%W",timeinfo);
puts (buffer);   // 48 (the week number of the year (Monday as the first day))

strftime (buffer,80,"%x",timeinfo);
puts (buffer);   // 02 Dec 2016

strftime (buffer,80,"%X",timeinfo);
puts (buffer);   // 13:35:59

strftime (buffer,80,"%y",timeinfo);
puts (buffer);   // 16 (year without century).

strftime (buffer,80,"%Y",timeinfo);
puts (buffer);   // 2016 (year with century)  

strftime (buffer,80,"%Z",timeinfo);
puts (buffer);   //  timezone ???
Только с часовой зоной не очень понятно, вроде, нет переменной, куда её добавлять, может, плохо искал? Сейчас часовая зона не определена, поэтому ничего не выводит. Где её определять???

И это относится как к STM32F1, так и к STM32F4, поэтому руками ничего делать не нужно, код в обоих сериях работает.

Последний раз редактировалось Consultant; 02.12.2016 в 12:32.
Consultant вне форума   Ответить с цитированием
Старый 02.12.2016, 12:51   #37
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,100
Вес репутации: 2433/52
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

кстати говоря.
в этом году 31 декабря будет время 23:59:60
это к вопросу, что в минуте 60 или редко 61 секунда.
besogon вне форума   Ответить с цитированием
Старый 02.12.2016, 14:03   #38
Consultant
Banned
 
Регистрация: 08.11.2013
Адрес: San Jose
Возраст: 65
Сообщений: 326
Вес репутации: 796/0
Consultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to behold
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от besogon Посмотреть сообщение
кстати говоря.
в этом году 31 декабря будет время 23:59:60
это к вопросу, что в минуте 60 или редко 61 секунда.
Если речь о секунде координации, то стандартная библиотека её не учитывает, часы идут как обычно:
Код:
UnixTime = 1483228795; // Sat, 31 Dec 2016 23:59:55 GMT

Sat Dec 31 23:59:55 2016
Sat Dec 31 23:59:56 2016
Sat Dec 31 23:59:57 2016
Sat Dec 31 23:59:58 2016
Sat Dec 31 23:59:59 2016
Sun Jan  1 00:00:00 2017
Sun Jan  1 00:00:01 2017
Sun Jan  1 00:00:02 2017
Sun Jan  1 00:00:03 2017
Пусть системы синхронизации занимаются вставкой этой секунды.
Consultant вне форума   Ответить с цитированием
Старый 03.12.2016, 19:41   #39
=L.A.=
Senior Member
 
Регистрация: 26.02.2007
Адрес: Москва РФ
Сообщений: 255
Вес репутации: 232/41
=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Написать свое не сложно, только смысла в этом мало, т.к. много чего уже написано и стандартизировано.
Стандартные библиотеки IAR (написанные индусами) под STM32 производят очень тяжелое впечатление.
Например, инициализацию портов я написал по-своему.
Кстати, в доке по STM32 есть множество примеров для работы с железом.
=L.A.= на форуме   Ответить с цитированием
Старый 04.12.2016, 00:57   #40
Consultant
Banned
 
Регистрация: 08.11.2013
Адрес: San Jose
Возраст: 65
Сообщений: 326
Вес репутации: 796/0
Consultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to behold
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от =L.A.= Посмотреть сообщение
Стандартные библиотеки IAR (написанные индусами) под STM32 производят очень тяжелое впечатление.
Например, инициализацию портов я написал по-своему.
Кстати, в доке по STM32 есть множество примеров для работы с железом.
А где вы прочитали, что Pridnya использует IAR для STM32?
Тяжелое впечатление может быть от любого не по уму труда.
IMHO: IAR один из мировых лидеров в производстве компиляторов, причем есть такие микроконтроллеры для которых есть компилятор от производителя и еще один от IAR, и всё. И ссылка та хорошая, на мысль навела и с указателем все просто, просто не все по той ссылке описано. И вообще весьма сомнительно, что компиляторы для IAR пишут индусы, да и вообще считать индусов - одних из лучших программистов в мире, плохими программистами нельзя, у них английский - родной язык. Один из руководителей Microsoft индус, впечатляет образование.
Вроде никто не спрашивал про доки, про общие слова о каких-то там доках. Вы если хотите кого-то отослать к доке, то приводите конкретную доку, у док бывает много релизов. А общие слова - ни о чем - ссылки на несуществующие источники.
Consultant вне форума   Ответить с цитированием
Старый 04.12.2016, 12:25   #41
HHIMERA
Senior Member
 
Регистрация: 10.06.2008
Возраст: 55
Сообщений: 2,482
Вес репутации: 3440/90
HHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond reputeHHIMERA has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от Consultant Посмотреть сообщение
IMHO: IAR один из мировых лидеров в производстве компиляторов
Полюбуйтесь... что накуролесил это "лидер".. для СТМ8... На некоторые моменты... до сих пор без слёз смотреть невозможно... Ну и да... и для СТМ32 тоже многие ругают...
__________________
"Я не даю готовых решений, я заставляю думать!"(С)
HHIMERA вне форума   Ответить с цитированием
Старый 04.12.2016, 14:57   #42
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,468
Вес репутации: 4590/146
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от =L.A.= Посмотреть сообщение
Стандартные библиотеки IAR (написанные индусами) под STM32 производят очень тяжелое впечатление.
т.н. "библиотеки под STM32" к этой IAR AB не имеют вообще никакого отношения. являются собственностью STM и помимо иар стандартно интегрируются с keil и atollic studio.
Greg вне форума   Ответить с цитированием
Старый 04.12.2016, 21:42   #43
=L.A.=
Senior Member
 
Регистрация: 26.02.2007
Адрес: Москва РФ
Сообщений: 255
Вес репутации: 232/41
=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от Pridnya
Но после её вызова микроконтроллер зависает. С помощью отладчика обнаружил, что зависает внутри функции time() в строке с командой BKPT. Это функция в стандартной библиотеке с ошибкой или я что-то некорректно делаю?
у меня было такое, если есть ошибка в строчках выбора/включения источника тактирования:
*
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
-------

Цитата:
Сообщение от Greg Посмотреть сообщение
т.н. "библиотеки под STM32" к этой IAR AB не имеют вообще никакого отношения. являются собственностью STM и помимо иар стандартно интегрируются с keil и atollic studio.
*
*
1)
/*******************
*
* Copyright 1998-2010 IAR Systems AB.
*
* This is the default implementation of the "time" function of the
* standard library. It can be replaced with a system-specific
* implementation.
*
* The "time" function returns the current calendar time. (time_t)-1
* should be returned if the calendar time is not available. The time
* is measured in seconds since the first of January 1970.
*
********************/
2)
************************************************** ****************************
* @file stm32f0xx_tim.c
* @author MCD Application Team
* @version V1.5.0
* @date 05-December-2014
* @brief This file provides firmware functions to manage the following
* functionalities of the TIM peripheral:
* + TimeBase management
* + Output Compare management
* + Input Capture management
* + Interrupts, DMA and flags management
* + Clocks management
* + Synchronization management
* + Specific interface management
* + Specific remapping management
*
* @verbatim

Последний раз редактировалось =L.A.=; 04.12.2016 в 22:01.
=L.A.= на форуме   Ответить с цитированием
Старый 04.12.2016, 22:05   #44
=L.A.=
Senior Member
 
Регистрация: 26.02.2007
Адрес: Москва РФ
Сообщений: 255
Вес репутации: 232/41
=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от Consultant Посмотреть сообщение
Вроде никто не спрашивал про доки, про общие слова о каких-то там доках. Вы если хотите кого-то отослать к доке, то приводите конкретную доку, у док бывает много релизов. А общие слова - ни о чем - ссылки на несуществующие источники.
*
Про доки не спрашивают, доки читают. Например, для STM32F0xx есть
RM0091 Reference manual
STM32F0x1/STM32F0x2/STM32F0x8
advanced ARM®-based 32-bit MCUs
=L.A.= на форуме   Ответить с цитированием
Старый 04.12.2016, 22:47   #45
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 6,468
Вес репутации: 4590/146
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от =L.A.= Посмотреть сообщение
1)
/*******************
*
* Copyright 1998-2010 IAR Systems AB.
*
* This is the default implementation of the "time" function of the
* standard library. It can be replaced with a system-specific
* implementation.
*
* The "time" function returns the current calendar time. (time_t)-1
* should be returned if the calendar time is not available. The time
* is measured in seconds since the first of January 1970.
*
********************/
2)
************************************************** ****************************
* @file stm32f0xx_tim.c
* @author MCD Application Team
* @version V1.5.0
* @date 05-December-2014
* @brief This file provides firmware functions to manage the following
* functionalities of the TIM peripheral:
* + TimeBase management
* + Output Compare management
* + Input Capture management
* + Interrupts, DMA and flags management
* + Clocks management
* + Synchronization management
* + Specific interface management
* + Specific remapping management
*
* @verbatim
у файлов из п.1 и п.2 единственное общее - буквы "tim" в названии.
файл stm32f0xx_tim.c, являющийся собственностью стм, находится в т.н. "библиотеке" (как ее зовут в народе) и предназначен не более чем для настройки модуля RTC серии 0.
Код:
/**
  ******************************************************************************
  * @file    stm32f0xx_tim.c
  * @author  MCD Application Team
  * @version V1.5.0
  * @date    05-December-2014
  * @brief   This file provides firmware functions to manage the following 
  *          functionalities of the TIM peripheral:
  *            + TimeBase management
....................................
@endverbatim
  *    
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>
  *
  * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
  * You may not use this file except in compliance with the License.
  * You may obtain a copy of the License at:
  *
  *        http://www.st.com/software_license_agreement_liberty_v2
  *
  * Unless required by applicable law or agreed to in writing, software 
  * distributed under the License is distributed on an "AS IS" BASIS, 
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
  ******************************************************************************
  */

/* Includes ------------------------------------------------------------------*/
#include "stm32f0xx_tim.h"
#include "stm32f0xx_rcc.h"
Greg вне форума   Ответить с цитированием
Старый 05.12.2016, 08:33   #46
Consultant
Banned
 
Регистрация: 08.11.2013
Адрес: San Jose
Возраст: 65
Сообщений: 326
Вес репутации: 796/0
Consultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to behold
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от =L.A.= Посмотреть сообщение
у меня было такое, если есть ошибка в строчках выбора/включения источника тактирования:
*
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
------
Я очень сомневаюсь в вашей компетентности и это мое устоявшееся мнение, сложившееся после вашего нового пришествия на форум и прочтения последних реплик. Теперь объясню почему:
1) вы не следите за темами, хотя бы за этой: вопрос был про временную зону для стандартной библиотеки time.h, компилятор ARMCC (конкретно для STM32F1xx и STM32F4xx, с этими тестируется код)
Цитата:
Только с часовой зоной не очень понятно, вроде, нет переменной, куда её добавлять, может, плохо искал? Сейчас часовая зона не определена, поэтому ничего не выводит. Где её определять???
например, в библиотеке time.h XC16 есть перемнная timezone, а в моем случае её нет.

вы же, наверное, в силу своего почтенного возраста захотели поучить общефилософскими рассуждениями про "индусский код" и "библиотеку от IAR", которую вы переписали.Стыдно, за Москва РФ.

2) Как практикующий инженер, у которого есть все средства, чтобы проверить примеры, код и прочее, не понимаю, как включение тактирования таймера TIM3 (таймер общего назначения) может быть связано с работой стандартной функции из стандартной библиотеки time.h. Секундный таймер UnixTime тактируется в системном таймере (что и было показано в примере от IAR) и не имеет отношения к таймеру общего назначения TIM3. Еще раз стыдно за Москва РФ, за желание ассоциировать себя такого неквалифицированного с таким славным городом-героем. Гастролер или заблудившийся. За 10 лет на форуме 240 сообщений, из них неадекватных, таких вот как в этой теме половина должна быть. За 2015-й год 5 сообщений. А потом будут банить за оскорбление таких "участников форума". Не можете вы быть участником форума. Вы - слушатель или наблюдатель, как у радиолюбителей - у кого есть только приемник - тот наблюдатель.

3) Я не спрашивал у вас, какой мне документ посмотреть и не пойму, к чему мне ссылка на очевидные вещи, но для другого микроконтроллера
Цитата:
Цитата:
Сообщение от =L.A.= Посмотреть сообщение
*
Про доки не спрашивают, доки читают. Например, для STM32F0xx есть
RM0091 Reference manual
STM32F0x1/STM32F0x2/STM32F0x8
advanced ARM®-based 32-bit MCUs
Цитата:
Сообщение от =L.A.= Посмотреть сообщение
1)
/*******************
*
* Copyright 1998-2010 IAR Systems AB.
*
* This is the default implementation of the "time" function of the
* standard library. It can be replaced with a system-specific
* implementation.
*
* The "time" function returns the current calendar time. (time_t)-1
* should be returned if the calendar time is not available. The time
* is measured in seconds since the first of January 1970.
*
********************/
2)
************************************************** ****************************
* @file stm32f0xx_tim.c
* @author MCD Application Team
* @version V1.5.0
* @date 05-December-2014
* @brief This file provides firmware functions to manage the following
* functionalities of the TIM peripheral:
* + TimeBase management
* + Output Compare management
* + Input Capture management
* + Interrupts, DMA and flags management
* + Clocks management
* + Synchronization management
* + Specific interface management
* + Specific remapping management
*
* @verbatim
И вот такая же шапка в SPL от ST (автор файлов не IAR, она лишь написала функцию time, что и указано в цитате, которую вы привели):
Код:
/**
  ******************************************************************************
  * @file    stm32f4xx_tim.c
  * @author  MCD Application Team
  * @version V1.0.2
  * @date    05-March-2012
  * @brief   This file provides firmware functions to manage the following 
  *          functionalities of the TIM peripheral:
  *            - TimeBase management
  *            - Output Compare management
  *            - Input Capture management
  *            - Advanced-control timers (TIM1 and TIM8) specific features  
  *            - Interrupts, DMA and flags management
  *            - Clocks management
  *            - Synchronization management
  *            - Specific interface management
  *            - Specific remapping management      
  *              
  *  @verbatim

Последний раз редактировалось Consultant; 05.12.2016 в 08:52.
Consultant вне форума   Ответить с цитированием
Старый 05.12.2016, 09:40   #47
=L.A.=
Senior Member
 
Регистрация: 26.02.2007
Адрес: Москва РФ
Сообщений: 255
Вес репутации: 232/41
=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от Greg Посмотреть сообщение
у файлов из п.1 и п.2 единственное общее - буквы "tim" в названии.
файл stm32f0xx_tim.c, являющийся собственностью стм, находится в т.н. "библиотеке" (как ее зовут в народе) и предназначен не более чем для настройки модуля RTC серии 0.
Прекрасно, что вы всё заметили Я тоже об этом слышал. Тока общее у файлов еще и то, что они предназначены для STM32.
=L.A.= на форуме   Ответить с цитированием
Старый 05.12.2016, 09:47   #48
=L.A.=
Senior Member
 
Регистрация: 26.02.2007
Адрес: Москва РФ
Сообщений: 255
Вес репутации: 232/41
=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about=L.A.= has a spectacular aura about
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от Consultant Посмотреть сообщение
Я очень сомневаюсь в вашей компетентности и это мое устоявшееся мнение, сложившееся после вашего нового пришествия на форум и прочтения последних реплик. Теперь объясню почему:
1) вы не следите за темами, хотя бы за этой: вопрос был про временную зону для стандартной библиотеки time.h, компилятор ARMCC (конкретно для STM32F1xx и STM32F4xx, с этими тестируется код)
например, в библиотеке time.h XC16 есть перемнная timezone, а в моем случае её нет.

вы же, наверное, в силу своего почтенного возраста захотели поучить общефилософскими рассуждениями про "индусский код" и "библиотеку от IAR", которую вы переписали.Стыдно, за Москва РФ.

2) Как практикующий инженер, у которого есть все средства, чтобы проверить примеры, код и прочее, не понимаю, как включение тактирования таймера TIM3 (таймер общего назначения) может быть связано с работой стандартной функции из стандартной библиотеки time.h.
Товарисчь из Сан-Хосе, если вы затеяли свою многобуквенную писанину лишь для того, чтобы потешить своё эго попытками унизить меня и таким образом возвысить себя, то посоветую вам больше этого не делать и не лезть в мои обсуждения с другими участниками форума.

Что касается вашей шизоидной бредятины про какие то мои попытки кого то поучить и прочее, то даже не вижу смысла её обсуждать. Понятно, что в США доктора дорого стоят и вам они не по карману, но я психотерапией не занимаюсь и таких как вы не исцеляю.

Жаль, что вы несмотря на свою громадную "практикующеинженению" и непомерные понты не смогли понять смысла моего сообщения из двух предложений. Мне стыдно за славный город Сан-Хосе и жаль вашего работодателя. (В свои 64 года этот "Консультатн" до сих пор не выучил, что для счета времени микроконтроллером ОБЯЗАТЕЛЬНО используется какой-либо таймер!)

Засим все общения с вами закрываю ибо компетентность ваша стремится к нулю. Консультатнируйте раздел для начинающих.

Последний раз редактировалось =L.A.=; 05.12.2016 в 10:07.
=L.A.= на форуме   Ответить с цитированием
Старый 05.12.2016, 11:58   #49
Consultant
Banned
 
Регистрация: 08.11.2013
Адрес: San Jose
Возраст: 65
Сообщений: 326
Вес репутации: 796/0
Consultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to behold
По умолчанию Re: time.h для микроконтроллеров

Цитата:
Сообщение от =L.A.= Посмотреть сообщение
Жаль, что вы несмотря на свою громадную "практикующеинженению" и непомерные понты не смогли понять смысла моего сообщения из двух предложений. Мне стыдно за славный город Сан-Хосе и жаль вашего работодателя. (В свои 64 года этот "Консультатн" до сих пор не выучил, что для счета времени микроконтроллером ОБЯЗАТЕЛЬНО используется какой-либо таймер!)
Какой-либо таймер использовался на 8-ми битках, на 16-ти битках, а в STM32 используется системный таймер, как в примере по ссылке от нелюбимой вами IAR, в этом посте товарищ Pridnya привел рабочий код. Вы похоже из кода не поняли, что делает этот код. Прикольно вы очевидные вещи выдаете за знания.
Consultant вне форума   Ответить с цитированием
Старый 05.12.2016, 22:08   #50
Consultant
Banned
 
Регистрация: 08.11.2013
Адрес: San Jose
Возраст: 65
Сообщений: 326
Вес репутации: 796/0
Consultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to beholdConsultant is a splendid one to behold
По умолчанию Re: time.h для микроконтроллеров

Кому интересно, чем закончилась история с timezone стандартной библиотеки time.h.
Consultant вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с программным кодом Yevgeniy_F Вопросы начинающих 212 01.08.2013 06:52
Скриншот с дисплея устройства: модуль для генерации bmp dimonomid Своими руками 32 20.12.2012 06:34
Имитатор DS18B20 Filya44 Вопросы начинающих 14 12.03.2012 17:39
господа, где добыть для ознакомпления среду разработки для FUJITSU dynaco Общетехнические вопросы 2 04.06.2007 06:10


Часовой пояс GMT +3, время: 16:11.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot