реклама на сайте
подробности

 
 
> Ошибка в AVR Studio4
Wild007
сообщение Oct 30 2006, 07:58
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672



Подскажите пожалуйста!!! Уже час не могу создать MACRO.
Привожу отрывок:
. . . .
.EQU TTT=4100/1000000
LDI r17,0x100-(TTT*20000000/1024)
. . . . .
выдает "error: Operand(s) out of range in 'ldi r17,0x100'"
Считаю на калькуляторе -- значение в скобках =0x50.
В чем проблема? (цифры приведены так как они передаются в MACROS по параметрам и просьба их не обсуждать)


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andreas1
сообщение Nov 1 2006, 10:06
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 12-03-06
Из: Москва
Пользователь №: 15 142



Ну тогда так

.MACRO DELAYMKS ;
.....
LDI R18,$100-INT(@0/1000000*@1/@2)
.......
.ENDM

в теле основной программы:

#define F_cry 20000000.0
.....
DELAYMKS 4100.0,F_cry,1024.0

Если работает, поробовать убрать .0 в вызове

Сообщение отредактировал Andreas1 - Nov 1 2006, 10:08
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Wild007   Ошибка в AVR Studio4   Oct 30 2006, 07:58
- - TriD   HEX обозначается как $100   Oct 30 2006, 08:08
|- - Wild007   Цитата(TriD @ Oct 30 2006, 11:08) HEX обо...   Oct 30 2006, 08:14
|- - Wild007   конструкция: .EQU TTT=0.0041 LDI r17,$100-(TT...   Oct 30 2006, 08:27
- - arttab   Цитата4100/1000000 Равно 0, а не 0,0041. и ругает...   Oct 30 2006, 08:12
|- - Wild007   Цитата(arttab @ Oct 30 2006, 11:12) Цитат...   Oct 30 2006, 08:34
- - arttab   а мой вариант?   Oct 30 2006, 08:30
- - arttab   .EQU TTT=0.0041*20000000 LDI r17,0x100-(TTT/1024) ...   Oct 30 2006, 08:41
|- - Wild007   Цитата(arttab @ Oct 30 2006, 11:41) .EQU ...   Oct 30 2006, 08:56
- - arttab   Думаю что с <1   Oct 30 2006, 08:59
|- - GinRider   Думаю, что компилятор автоматически использует INT...   Oct 30 2006, 11:47
|- - Wild007   Цитата(GinRider @ Oct 30 2006, 14:47) Дум...   Oct 31 2006, 06:35
- - Yura_K   Если использовать ассемблер первой версии (avrasm)...   Oct 30 2006, 14:05
- - Andreas1   У меня не получалось назначить через .EQU нецелое...   Oct 31 2006, 07:30
- - Wild007   Решил проверить коректность работы компилятора, со...   Oct 31 2006, 14:16
- - xemul   Выражение Цитата(A/B*C/D) вычисляется препроцессор...   Oct 31 2006, 15:11
|- - IgorKossak   Цитата(xemul @ Oct 31 2006, 17:11) Выраже...   Nov 1 2006, 08:20
|- - xemul   Цитата(IgorKossak @ Nov 1 2006, 11:20) Ци...   Nov 1 2006, 10:54
- - Gennadiy_   Я писал так: Код.equ quant=(CK/64)/256 .e...   Oct 31 2006, 16:58
- - Wild007   Даа, проверять, проверять и еще раз проврять... (с...   Nov 1 2006, 06:56
- - Wild007   Проверил в Студии: .EQU A=4100.0 .EQU B=1000000.0...   Nov 1 2006, 08:42
- - Andreas1   А чем не нравится так #define A 4100.0 #define B 1...   Nov 1 2006, 09:06
|- - Wild007   Цитата(Andreas1 @ Nov 1 2006, 12:06) А че...   Nov 1 2006, 09:15
- - Andreas1   ЦитатаЭто все хорошо, но А,C и D это параметры кот...   Nov 1 2006, 09:42
- - Wild007   .MACRO DELAYMKS ; ..... LDI R18,$100-(@0/1...   Nov 1 2006, 09:50
- - Wild007   .MACRO DELAYMKS ; ..... LDI R18,$100-INT(@0/1...   Nov 1 2006, 12:11


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 12:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01402 секунд с 7
ELECTRONIX ©2004-2016