[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
CodeVision AVR в вопросах и ответах
- Сообщения: 1138
- Зарегистрирован: Сб апр 03, 2010 08:57:35
Неужели мой вопрос настолько глуп что не достоин внимания....
[img]http://i053.radikal.ru/1102/71/0a0346d3a067.gif[/img]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
- Реклама
- Сообщения: 3459
- Зарегистрирован: Ср сен 27, 2006 16:18:57
Есть подозрение, что это такой сорт компилятора. Возможно, из-за того, что задержка в микросекундах, т.е. довольно маленькая, компилятор не хочет подставлять туда переменную. Скорее всего, это изменить невозможно.Modest писал(а):Почему, и как можно это изменить...
Лично я не использую библиотечную функцию задержки, а делаю собственную, на таймере.
- Сообщения: 1138
- Зарегистрирован: Сб апр 03, 2010 08:57:35
нет, путей замены этой библиотечки конечно много, просто было интересно почему, и были подозрения что возможно это только у меня.
Спасибо.
Спасибо.
[img]http://i053.radikal.ru/1102/71/0a0346d3a067.gif[/img]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
[size=85]Ты думаешь ты думал как ты думаешь? (с)[/size]
достаточно писать var = (long int)a * b / 1000;Барсик писал(а):Поэтому, я напишу вот так, и будет счастье: var = ((long int)a) *((long int)b) / 1000;
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 326
- Зарегистрирован: Сб сен 06, 2008 12:56:13
А не -31?Барсик писал(а):Будет жопа ! В смысле, 34.ARV писал(а):а если b = 50 ???
- Реклама
- Сообщения: 3459
- Зарегистрирован: Ср сен 27, 2006 16:18:57
Опять же, к сожалению, проверить смогу только в понедельник. Но подозреваю, что с "простым" int так и получится. Хотя...ARV писал(а):в том-то и дело, нифига не получается... как вы думаете, чему будет равна переменная var в следующем коде:если вы думаете, что 40 - вы не правы! результат хоть и влезает в int, но, увы, будет удивительным образом равным -25Код: Выделить всё
int a = 2000; int b = 20; int var = a * b / 1000;
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
есть вещи, проверять которые нет смысла - они как аксиомы, не требут доказательств. одна из таких вещей - правила преобразования типов при вычислениях Си.Gudd-Head писал(а):Опять же, к сожалению, проверить смогу только в понедельник. Но подозреваю, что с "простым" int так и получится. Хотя...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Ну почему же...
Можно проверить конкретный компилятор на соответствие этим правилам
Можно проверить конкретный компилятор на соответствие этим правилам
Лень в виде мании величия: «ты гений, зачем стараться?». В виде комплекса: «всё равно не выйдет, зачем упираться?». Как логика: «если достаточно, зачем знать и уметь больше?». Цель одна: остановить. Не любит тепло работающих мышц и шум работающего мозга.
Не скажу насчет этого конкретного случая, с микроконтроллерным 'С' дел не имел, а вот с ПК-шным были хохотунчики. Давно работающую прогу откомпилил на соседнем компе - и полный затык. Оказалось, в настройках компилятора у меня по умолчанию char unsigned, а на другом наоборот, поэтому генерится совсем другой код. С тех пор завел правило: забудь Фортран, не полагайся на умолчание и объявляй все, что только можно.ARV писал(а):есть вещи, проверять которые нет смысла - они как аксиомы, не требут доказательств. одна из таких вещей - правила преобразования типов при вычислениях Си.
С unsigned тоже получается -25 (FFE7)Барсик писал(а):А я объявлю переменные как unsigned int и буду правНахрен мне старший разряд отдавать под знак, когда у меня арифметика беззнаковая
Да, наверное, проверять смысла не было. В любом случае, все с чего-то начиналиARV писал(а):есть вещи, проверять которые нет смысла - они как аксиомы, не требут доказательств. одна из таких вещей - правила преобразования типов при вычислениях Си.
avreal, действительно с делением именно на 256 размер кода сократился с 232 до 140 словavreal писал(а):я бы вычислял неаКод: Выделить всё
(ADC0 * 957) / 1000Вменяемый компилятор деление на 256 заменит на несколько пересыланий байт по регистрам. Кода займёт меньше, чем вызов процедуры деления.Код: Выделить всё
(ADC0 * 245) / 256
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Хлопцы!!!! всем мяу!!!! доделал я почти свой осцил!!! но загвоздка - как присвоить елементу массива число? у меня не получается! должно быть что то вроде этого :
unsigned char koordy[];
while(что-то)
{
y=какое-то_выражение;
koordy=y;
i++;
}
но не работает!!! помогите пожалуйста
unsigned char koordy[];
while(что-то)
{
y=какое-то_выражение;
koordy=y;
i++;
}
но не работает!!! помогите пожалуйста
радиоэлектроника - жизнь моя...
ну так размерность массива-то надо задавать
unsigned char koordy[32]; // тут может быть 32 разных байта!
unsigned char koordy[32]; // тут может быть 32 разных байта!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
кто нить может подсказать как плавно включить светодиод?дайте плз образец у меня не получается...
Используй ШИМ и будет тебе счастье !Сериг писал(а):кто нить может подсказать как плавно включить светодиод?дайте плз образец у меня не получается...
я понимаю что шим (PWM) дайте плз пример.andrey_artemov писал(а):Используй ШИМ и будет тебе счастье !Сериг писал(а):кто нить может подсказать как плавно включить светодиод?дайте плз образец у меня не получается...
Ну вот пример, регулируется с помощью кнопки, или переменника
посмотри, всё поймёшь...
посмотри, всё поймёшь...
- Вложения
-
- shim.zip
- (113.95 КБ) 197 скачиваний
сенк,а можете подсказать,как сделать что бы при замыкании порта на минус включался режим плавного разгорания к примеру за 5 сек он дожен разгорется...andrey_artemov писал(а):Ну вот пример, регулируется с помощью кнопки, или переменника
посмотри, всё поймёшь...


