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

 
 
> Ошибка в 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, 09:06
Сообщение #2


Местный
***

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



А чем не нравится так
#define A 4100.0
#define B 1000000.0
#define C 20000000.0
#define D 1024.0
LDI R18,low($100-int(A/B*C/D));
LDI R19,high($100-int(A/B*C/D))

В отладчике получается
;R18=0xB0 R19=0x00
Go to the top of the page
 
+Quote Post
Wild007
сообщение Nov 1 2006, 09:15
Сообщение #3


Местный
***

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



Цитата(Andreas1 @ Nov 1 2006, 12:06) *
А чем не нравится так
#define A 4100.0
#define B 1000000.0
#define C 20000000.0
#define D 1024.0
LDI R18,low($100-int(A/B*C/D));
LDI R19,high($100-int(A/B*C/D))

В отладчике получается
;R18=0xB0 R19=0x00


Это все хорошо, но А,C и D это параметры которые передаются в MACROS, а EQU здесь применено для упрощения.


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
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   ЦитатаЭто все хорошо, но А,C и D это параметры кот...   Nov 1 2006, 09:42
- - Wild007   .MACRO DELAYMKS ; ..... LDI R18,$100-(@0/1...   Nov 1 2006, 09:50
- - Andreas1   Ну тогда так .MACRO DELAYMKS ; ..... LDI R18,...   Nov 1 2006, 10:06
- - 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 - 10:48
Рейтинг@Mail.ru


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