Например TDA7294

 Форум РадиоКот • Просмотр темы - Вопросы по С/С++ (СИ)
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Ср сен 20, 2017 05:01:19



Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5008 ]  На страницу Пред.  1 ... 247, 248, 249, 250, 251
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Сб сен 09, 2017 18:50:00 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн сен 05, 2011 11:03:06
Сообщений: 135
Откуда: Тула
Рейтинг сообщения: 0
похоже старый IAR

Ага, спасибо. Нашел 5-й IAR 2000-го года. На нем сходу скомпилировалось без ошибок и предупреждений. А со сборкой - облом. Тот паренек ушлый оказался - сделал пару ссылок на внешние модули чтоб без него пересобрать нельзя было :(

_________________
Сопротивлениям слова не давали.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт сен 14, 2017 10:55:57 
Друг Кота
Аватар пользователя

Карма: 38
Зарегистрирован: Пт авг 28, 2009 22:34:30
Сообщений: 5857
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Немного достаёт новый XC микрочиповский. Особенно, предупреждениями о неявном преобразовании знаковый-беззнаковый. Вот такая строчка:
Код:
epoch = unixtime + (3600ul * (timezone + (flag.dst ? 1u : 0u)));
пока все у меня объявлены как беззнаковые проблем нет. Но мне хочется переменную timezone объявить знаковой, так как она может быть и отрицательной. Так вот стоит это сделать, как получаю предупреждение:
Код:
main.c:421: warning: (373) implicit signed to unsigned conversion
Можно ли сделать, чтобы при отрицательном timezone оно вычиталось бы? Беззнаковость unixtime хотелось бы сохранить - 32 разряда и так еле хватает.
Пока я вижу вариант - делать две ветви для положительного и отрицательного. В одном суммировать, а вдругом вычитать абсолютное беззнаковое значение.

_________________
Ненавижу рекламу.


Вернуться наверх
 Профиль  
 
От идеи до готового устройства! Нужен только EasyEDA!

Бесплатный инструмент для проектирования печатных плат - нарисуй свою плату прямо сейчас!

JLCPCB for PCB Prototyping, всего $2 за 10 печатных плат 10×10см. Доставка 2-3 дня.

LCSC Parts: Экономия до 50%, большой выбор компонентов в наличии, отправка заказа в день оплаты.

Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт сен 14, 2017 11:24:38 
Модератор
Аватар пользователя

Карма: 59
Зарегистрирован: Пт мар 19, 2010 00:09:57
Сообщений: 3539
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
XC8 V1.38
Код:
volatile unsigned long   epoch=0, unixtime=0;
volatile signed long     timezone=0;

struct{
    unsigned    dst:1;
}flag;



void main(void){

flag.dst=1;

epoch = unixtime + (3600ul * (timezone + (flag.dst ? 1u : 0u)));


while(1){}
}
Ругани нет :dont_know:

PS: Работоспособность не проверял.

Добавлено after 5 minutes 20 seconds:
Попробуйте такой вариант :
Код:
epoch = (signed long)unixtime + (3600L * (timezone + (flag.dst ? 1u : 0u)));


Ну а воббще, он правильно ругается. Некоторые части выражения могут быть отрицательными, значение которых оперируется с беззнаковыми переменными.

_________________
Я мненью вашему вращенье придавал, а осью был - мой детородный орган.


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт сен 14, 2017 11:50:07 
Грызет канифоль

Карма: 4
Зарегистрирован: Вс июн 19, 2016 10:32:03
Сообщений: 297
Рейтинг сообщения: 3
Немного достаёт новый XC микрочиповский. Особенно, предупреждениями о неявном преобразовании знаковый-беззнаковый.

Предупреждает и правильно делает, это довольно распространенный тип ошибок. Например, чему равно -10 + 5U? Ответ 4294967291, хотя компилятор такой код с константами и не пропустит, но если речь идет о переменных и это часть более сложного выражения, то можно получить не самую очевидную ошибку.


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт сен 14, 2017 11:55:52 
Друг Кота
Аватар пользователя

Карма: 38
Зарегистрирован: Пт авг 28, 2009 22:34:30
Сообщений: 5857
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Мда. предупреждение, действительно, верное и критичное. Придётся вводить просто флаг запад-восток и делать две ветки.

Я тут на прошлой неделе почитывал MPLAB® XC8 C Compiler User’s Guide - оказывается, занимательнейшее чтиво.

Это началось с какойто из 1.4Х версии: viewtopic.php?p=3108891#p3108891

_________________
Ненавижу рекламу.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт сен 14, 2017 16:14:23 
Говорящий с текстолитом

Карма: 29
Зарегистрирован: Пн апр 06, 2015 12:01:53
Сообщений: 1583
Откуда: москва, уфа
Рейтинг сообщения: 0
Цитата:
volatile signed long timezone=0;
...
epoch = unixtime + (3600ul * (timezone + (flag.dst ? 1u : 0u)));

строго говоря, в общем случае сдвиг времени в зоне не обязан быть целым часом. Например вот эти:

Asia/Colombo +05:30
Asia/Kathmandu +05:45
Asia/Kolkata +05:30
Australia/Broken_Hill +09:30


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт сен 14, 2017 18:24:26 
Друг Кота
Аватар пользователя

Карма: 38
Зарегистрирован: Пт авг 28, 2009 22:34:30
Сообщений: 5857
Откуда: 845-й км.
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Спасибо, я в курсе. Но такая задача не стоит из-за того, что конфигурирование будет через-чур сложным.

_________________
Ненавижу рекламу.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Чт сен 14, 2017 21:35:28 
Держит паяльник хвостом
Аватар пользователя

Карма: 16
Зарегистрирован: Ср янв 29, 2014 09:41:31
Сообщений: 965
Откуда: Баку
Рейтинг сообщения: 0
Я тоже недавно вместе с обновлением МПЛаба до четверки и компилятор обновил до 1.43, после чего и полезли эти "имплисит конвершны".

_________________
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Просто Жук.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 5008 ]  На страницу Пред.  1 ... 247, 248, 249, 250, 251



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y