А вообще, если честно, непонятен смысл всех этих действий. Код чуть менее чем полностью - бред. Например, при nbt≥32 получится nn≥4 - выскакиваем за пределы индекса массива.
Попробуйте более внятно объяснить, что Вы хотите получить.
Код: Выделить всё
uint8_t i;
uint32_t result;
result = 0;
for (i = 0; i < 32; i++) {
if (getBit()) {
result |= (1UL << i);
}
}Может это в высших учебных заведениях базовые вещи, а для простых самоучек это нюансы, так как я сейчас поискал по инетуWiseLord писал(а):Вообще-то это базовые вещи, а не нюансы.
Вот, например, первая же табличка.Там же, про преобразования типов при вычислении выражений.TICLIR писал(а):поискал по инету и ни чего подобного не нашел
Зачем считать все компиляции? это просто ананизм какой-то,TechMike писал(а):Доброго дня.
Подскажите есть ли в winavr счетчик количества компиляций или как его можно реализовать без внешнего IDE или из avr studio 4?
Например нужно чтобы после каждой перекомпиляции проекта, счетчик инкрементировался на единицу и этот счетчик можно было вывести в программе в usart.
Почитайте любой внятный учебник по Си, для начинающих лучше "Голубого Си" еще ничего не написали...TICLIR писал(а):про такие нюансы где можно прочитать??
Мне так проще, чтобы не следить за версией во втором знаке. Компиляций у меня пару за день и то если было время заниматься разработкой._dark писал(а):Зачем считать все компиляции? это просто ананизм какой-то,TechMike писал(а):Доброго дня.
Подскажите есть ли в winavr счетчик количества компиляций или как его можно реализовать без внешнего IDE или из avr studio 4?
Например нужно чтобы после каждой перекомпиляции проекта, счетчик инкрементировался на единицу и этот счетчик можно было вывести в программе в usart.
делаются десятки компиляций в день, зачем знать что она 1276-я сегодня или вообще 16464235-я?
Заведите номер версии ПО (удобно в виде ascii массива или как сочтете нужным) и правьте руками младший байт если нужно знать что релиз изменился...
А запрос версии ПО одна из стандартных команд "уважающего себя" девайса...
Тем паче нет никакой проблеммы кроме лениМне так проще, чтобы не следить за версией во втором знаке. Компиляций у меня пару за день и то если было время заниматься разработкой.
Лень - двигатель прогресса (С)_dark писал(а):Тем паче нет никакой проблеммы кроме лениМне так проще, чтобы не следить за версией во втором знаке. Компиляций у меня пару за день и то если было время заниматься разработкой.![]()
ps
Дату и время компиляции в некоторых компиляторах можно вставлять автоматически (IAR например), а вот менять версию автоматически не встречал ни разу...
если кто это и реализовал, то навярняка в виде костылей...
Если разберетесь, черкните пару строк, думаю многим ленивым будет интересноВ деталях пока не разобрался...
Код: Выделить всё
int version =
#include "ver.h"
;Код: Выделить всё
@echo off
set /p version=<ver.h
set /a version=version+1
echo %version% >ver.hARV писал(а):.... радуетесь и ликуете, поднимая тосты за мое здоровье
Время компиляции уже есть в переменной __TIME__Gudd-Head писал(а):Номер компиляции это круто. А можно также заливать рандомное число или текущее время?