|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
26.10.2021, 17:17 | #11 |
Пользователь
Регистрация: 24.10.2021
Сообщений: 17
|
Вот так сработало:
Код:
|
26.10.2021, 17:44 | #12 |
Пользователь
Регистрация: 24.10.2021
Сообщений: 17
|
Дальше словил Error A22: Expression type does not match instruction
Код:
Дальше стопорится на такой конструкции: Код:
Код:
или такая: Код:
Последний раз редактировалось devel2011; 26.10.2021 в 17:51. |
26.10.2021, 18:11 | #13 |
Пользователь
Регистрация: 24.10.2021
Сообщений: 17
|
Вот еще непонятная конструкция:
Код:
|
26.10.2021, 23:05 | #14 | |
Пользователь
Регистрация: 24.10.2021
Сообщений: 17
|
Вот что я нашел по правой части выражения, которое постом выше:
Цитата:
|
|
27.10.2021, 02:48 | #15 |
Пользователь
Регистрация: 24.10.2021
Сообщений: 17
|
Из почти 600 ошибок осталось лишь 30. Запнулся на арифметике. Заданы константы:
Код:
Закинул эти выражения в Python, - все считается нормально, нуля нет. Циферки норм. Нужна помощь зала ... |
27.10.2021, 11:28 | #16 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,647
|
Может быть, компилятор при вычислении констант применяет целочисленное деление. Тогда если CORTM0 < 1, получится 0.
Облегчить ему работу: вычислить вручную эти константы и подставить в исходник. 5 минут... |
27.10.2021, 12:39 | #17 |
Пользователь
Регистрация: 24.10.2021
Сообщений: 17
|
digitalis, благодарю.
В целом, да - константы пляшут от кварца, внося корректировки. А кварц уже есть, и его частота известна. Значит действительно, проще вычислить константы один раз, и объявить их. Но дальше в коде есть еще похожие конструкции, как бы они не оказались тоже нерабочими. Синтаксис похожий. Для кварца 4046кГц константы вычисляются такие: Код:
Код:
|
27.10.2021, 14:49 | #18 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,647
|
Так он же листинг выдаёт (должен выдавать) - там всё видно.
Я с 51-м не работал, но к примру, для AVR - AvrAsm выдаёт в листинге всё нужное. Если есть в программе непосредственный операнд, то его значение в HEX-системе будет в листинге. |
27.10.2021, 15:09 | #19 |
Пользователь
Регистрация: 24.10.2021
Сообщений: 17
|
Ага! Открыл листинг, и там константы с формулами после EQU по нулям. Константы-числа Ок. Поэтому и кривеет все ниже. Значит, формулу надо курить.
Еще нашел любопытную конструкцию: Код:
|
27.10.2021, 16:05 | #20 |
Пользователь
Регистрация: 24.10.2021
Сообщений: 17
|
C арифметикой получается следующее: умножение TIK0*QUARZ, например, получается слишком большим (предел почему-то 65535), а деление действительно целочисленное. Результат в листинге записан в 16-м формате, 4 разряда. Если есть переполнение в расчете - в листинге нули. MOD работает. Я так понимаю, по аналогии с другими языками, надо как-то определить тип константы (float), хотя как компилировалось в родной среде без этого - не понятно...
И еще вопрос: в каком порядке выполняется это действие: Код:
Последний раз редактировалось devel2011; 27.10.2021 в 16:18. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка. Берём hex-код, шифруем hex-код, собираем всё в файл. | Poltish | Общие вопросы Delphi | 2 | 21.08.2013 12:57 |
file->HEX HEX->BIN | kakawkin | Общие вопросы Delphi | 1 | 25.04.2012 01:02 |
По HEX | kompaky | Общие вопросы по программированию, компьютерный форум | 2 | 30.07.2011 19:12 |
Помогите с hex в с++ | pavelstraut | Помощь студентам | 1 | 17.07.2009 23:29 |
C# и HEX | megazz13 | Помощь студентам | 2 | 03.04.2009 00:32 |