Еще один самодельный калькулятор

The hardware is based on NXP's MC9S12G micro controller family. It has a 38 button key pad and a ST7565R based 128×64 dot matrix LCD display (optionally back lit). As of RevC, the AriCalculator also has a general purpose 3.3V SPI expansion port.

---------------------------
Истина где-то рядом
aldebaran.ru/author/samurov_vitaliyi/kniga_dozvonitsya_do_devyi/

Стоит подписать что за ядро используется - совместимое с 68HC11. То есть CISC ядро.

38 кнопочек более чем хватит для МК-61+ и МК-72Р. Может, объединиться с товарищем? Пусть делает "железяку", а мы зальём туда "начинку".

Msp432 думаю будет намного резвей, да и по памяти куда предпочтительней. У данного семейства микроконтроллеров freescale объем Flash до 240К ОЗУ до 11К. Это мало для Рапиры, у выбранного lanchpad msp432 256KB Flash, 64KB RAM.

P.S. Готовлюсь купить msp432 для MK-72Р и присоединиться к проекту :)
P.P.S. Из за клавиатуры не стоит переживать, видели с Виталием очень не плохую клавиатуру (точнее калькулятор с клавиатурой под QWERTY) на aliexpress/ebay с вполне удобной ценой.

Автору калькулятора респект! Клавиатура из тактовых кнопок как у Семико :)
Вместо тактовых кнопок я видел кнопки с плавным нажатием в автомобильном проигрывателе с климат-контролем, но в радиомагазинах их не оказалось. Похожи на тактовые, но высота и ход кнопки больше, а ход плавнее. И ресурс в разы больше

Кстати, Алексей, напомни, что мы за кальк видели на али? Скинь сюда ссылку или фотку?

---------------------------
Истина где-то рядом
aldebaran.ru/author/samurov_vitaliyi/kniga_dozvonitsya_do_devyi/

А каковы его размеры?

примечание: Tон батарея не включая в пакет судоходной политики. спасибо за ваше понимание!

:)

---------------------------
Истина где-то рядом
aldebaran.ru/author/samurov_vitaliyi/kniga_dozvonitsya_do_devyi/

Size:70*110*13MM

13мм толщина корпуса. Впритык для самоделок. И с дисплеем непонятно

---------------------------
Истина где-то рядом
aldebaran.ru/author/samurov_vitaliyi/kniga_dozvonitsya_do_devyi/

Вот в такой вот кальк надо вставлять msp432.

30 кнопок и два переключателя.

---------------------------
Истина где-то рядом
aldebaran.ru/author/samurov_vitaliyi/kniga_dozvonitsya_do_devyi/

Лучше в такой: New Original Calculatrice Graphique pour HP 39gs Calculatrice Graphique Enseigner SAT/AP Test pour HP39gs

Или в такой: 991ES Plus calculatrice scientifique double pouvoir avec 417 fonction

Если набрать в строке поиска calculator, то можно часами листать, их там море.

39gs ломать как-то рука не поднимется. Я бы лучше в корпус МК52 вставил (у меня, похоже, накрылся и второй 52й).

А 991ЕS плюс тонковат для самоделок

---------------------------
Истина где-то рядом
aldebaran.ru/author/samurov_vitaliyi/kniga_dozvonitsya_do_devyi/

А корпус от МК51 разве не выглядит привлекательным в этом случае?

Сергей, речь про Рапиру? Набирать придется много и без удобной QWERTY клавиатуры руки даже не потянутся работать, нет? Можно представить себе МК85 с таким кол-вом кнопок? Была вроде бы попытка МК-90 где кнопки были размещены в алфавитном порядке, говорят что это убило микрокомпьютер.

Не только про Рапиру, меня все-таки греет идея переключения режимов МК61-Рапира (можно и ФОрт добавить, концептуально нет помех). QWERTY безусловно, для Рапиры удобнее, как и для Форта. Для МК61 - меньше. Но ради первых двух можно и поступиться.

Serguei_Tarassov wrote: QWERTY безусловно, для Рапиры удобнее, как и для Форта. Для МК61 - меньше. Но ради первых двух можно и поступиться.

Т.е., Сергей, я правильно понимаю что хотелось бы иметь универсальную платформу с QWERTY клавиатурой- для личных исследований в области ПМК :) но при этом МК61 как платформа так же не дает покоя как и мне? Значит QWERTY однозначно?

По всему выходит - QWERTY, иначе мы упираемся в тупичок школьных/научных калькуляторов, полноценная реализация микроЭВМ (по современным меркам - наноЭВМ :) ) становится неполноценной. Совместить оба класса в одном корпусе, "форм-факторе" - задача очень непростая.

Вот, собсно, возможное готовое решение, даже русифицированное и всего за 10 долларов. Мини-клавиатура, вес - 150 грамм.

корпусЕще компактнее

клава

Искать нужно не кальки, а label maker-ы и мини-клавиатуры.

Сергей, первая по моему в точку,
(L x P x H):14.70x9.80x1.90 cm - это чуть покороче и слегка пошире (на 1 см) МК61.

Это пять! Спасибо!

вместо тач пада ставится ЖКИ экран, как у Алексея, и получается готовое решение с батарейным отсеком

---------------------------
Истина где-то рядом
aldebaran.ru/author/samurov_vitaliyi/kniga_dozvonitsya_do_devyi/

Тоже голосую за первую клаву. Почти TI-89 Voyager :)

Да, но Вояджер похоже :)

- Powered by 2 x AAA battery ( not included )
- Product Size(L x W x H): 14.70 x 9.80 x 1.90 cm / 5.79 x 3.86 x 0.75 inches

Размеры подходят, чтобы внутрь запихать msp432 лаунчпад. Надо купить сразу всем желающим, чтобы одно и то же было у всех.

Я пересчитал масштабы - ЖКИ Алексея, вроде, влезет, да?
почти Вояджер

---------------------------
Истина где-то рядом
aldebaran.ru/author/samurov_vitaliyi/kniga_dozvonitsya_do_devyi/

Не могу прикрепить фото :), пошлю Виталий тебе и Сергею.

Размеры именно окна дисплея 37.09 х 23.01 мм. Т.е. ЖК влезает с запасом!

P.S.
клава

Так ведь только из-за клавиш и высмотрел такую модель - это же QWERTY клава, без каких либо переделок!

С дисплеем да, без дополнительных телодвижений не получится, нужно будет резать окно побольше.

Сергей, согласен с Алексеем - нет смысла. MSP432 мощнее, надо туда пилить

---------------------------
Истина где-то рядом
aldebaran.ru/author/samurov_vitaliyi/kniga_dozvonitsya_do_devyi/

Не мелочиться и идти в сторону ARM Cortex M3 :) Есть команды умножения и деления, со слов миландрофорума программу можно в озу запускать, ассемблерные вставки в программе.
Тогда, нужно определяться, что нам нужно - изобретать микрокалькулятор?
Косвенные переходы на адреса в регистрах обменять на метки в программе :) Например в виде таблицы адресов переходов?

http://www.ti.com/tool/MSP-EXP432P401R
Features

Low-power, high performance MSP432P401R MCU
48MHz 32-bit ARM Cortex M4F with Floating Point Unit and DSP acceleration
Power consumption: 80uA/MHz active and 660nA RTC standby operation
Analog: 24Ch 14-bit differential 1MSPS SAR ADC, Two Comparators
Digital: Advanced Encryption Standard (AES256) Accelerator, CRC, DMA, HW MPY32
Memory: 256KB Flash, 64KB RAM
Timers: 4 x16-bit, and 2 x 32-bit
Communication: Up to 4 I2C, 8 SPI, 4 UART
40 pin BoosterPack Connector, and support for 20 pin BoosterPacks
Onboard XDS-110ET emulator featuring EnergyTrace+ Technology
2 buttons and 2 LEDs for User Interaction
Back-channel UART via USB to PC

---------------------------
Истина где-то рядом
aldebaran.ru/author/samurov_vitaliyi/kniga_dozvonitsya_do_devyi/

Электромонтёр wrote: Не мелочиться и идти в сторону ARM Cortex M3 :) Есть команды умножения и деления, со слов миландрофорума программу можно в озу запускать,

Да это все там есть. Если разговор про симуляцию на нем MK61 то все это и не понадобится, если разговор про МК-72Р то там да будет как нельзя востребовано. Однако в этом случае получаем плавучку IEEE 754, а вот IEEE 854 не будет нативной Cortex-M3 и полноценная BCD арифметика будет медленней на 2-3 порядка. Программу из ОЗУ можно, а для чего?

Электромонтёр wrote: ассемблерные вставки в программе.
Тогда, нужно определяться, что нам нужно - изобретать микрокалькулятор?
Косвенные переходы на адреса в регистрах обменять на метки в программе :) Например в виде таблицы адресов переходов?

Если разговор про расширенный МК61, мне кажется надо стараться меньше изобретать :), но больше стараться работать в парадигме имеющейся системы команд. Возможно что двух разрядный код адреса в переходе, вполне подходит под ссылку на таблицу меток, их будет не много но это даст расширение адреса перехода на любое пространство. Помню в mk61avr мы с Vitasam задумывали поступить именно так. Мне кажется вполне ладное решение. В конце концов косвенный переход всегда под рукой, пусть и с проигрышом в тактах, его не надо сбрасывать со счетов.

По умолчанию метка может совпадать со своим адресом. Когда программа редактируется, при сдвигах, метки (и код) сохраняются — а адреса использованных меток в таблице изменяются.

Это всё, конечно, не только ограничивает число переходов, но также полностью игнорирует линию развития ЭКВМ. С ней совпадёт только использование косвенной адресации для расширения адресного пространства программ и данных.

Можно ещё взять трёхшаговые переходы вроде РБП (F1 xx xx), для явного указания цели. Полной совместимости это не даст. Но позволит желающим писать переносимые программы, идущие также на МК-161.

Таблица меток, это прозрачный для архитектуры МК61 инструмент. Таблица меток может привязать метки к сегментам кода в которых находится указатель исполняемой инструкции IP, например странице-0 адресов 0..105 соответствует таблица меток 0, странице-1 адресов 250..355 таблица меток 1, и т.д. В итоге получаем неограниченный маневр по переходу, так как меток столько же сколько и всего возможных переходов внутри страницы. Проблема появится только в случае самомодифицирующегося кода, а это довольно специфический прием программирования.

Есть еще одна возможность, которую Вы упустили, это переход не абсолютный, а по смещению. При работе в программе МК61 где необходима совместимость 100%, смещение заданное в команде БП XX должно быть абсолютным адресом - то есть IP = XX. Однако ничего не мешает нарушить совместимость введя переключатель режима работы IP = (MK61_STATE == EXT)? IP + XX : XX. Получим еще одно средство, уже не такое прозрачное как таблица меток, но вполне применимое для ближнего перехода. Само собой что MK61_STATE это переменная доступная в архитектуре МК61 - косвенно.

Кроме того есть соображение вот такого плана. Предположим в архитектуре МК61 появляется возможность свободно адресоваться в пространстве 64К. Само собой для работы с таким пространством потребуется среда - транслятор ассемблера МК61, либо компилятор в один из удобных ЯВУ, либо Форт ядро. Этот инструментарий однозначно уровняет для нас косвенный переход вида Пx КБПх (или КППx) с переходом по абсолютному адресу вида ПРЕФИКС . Указанные два способа будут различаться по тактам ядра, различаться по размеру кода, но мы этого вряд ли заметим.

Если уж так сильно захотеть уровнять эти два метода, то вполне эффективно можно осуществлять трансляцию набираемого по разрядно адреса, т.е. буквально кодами цифр 1 2 3 4 5 6 на лету при повторном проходе. Когда то DEC в VAX-ах широко эту технику использовал, в последствии она стала нам известна под именем JIT. Для циклов она решает вопрос производительности за счет кеширования таких последовательностей. Будет ли это оправдано?
На набор 4 разрядного десятичного числа в данный момент тратится - от 48 до 60 тактов msp430. Наверное потери в циклах будут сказываться, но не на столько на сколько сказывается уже сейчас реализация BCD арифметики. Сейчас это сотни тактов для умножения, я думаю выйдет за тысячи тактов при делении. На фоне таких потерь потеря в 100 тактов на переход не так уж существенна.
Да есть место где переход крайне важен - это если он цикловый. Это как правило любой "полинг" внешних событий (портов, сигналов). Однако цикловые конструкции в МК61 уже заложены явно либо возможны через косвенный переход, либо обычный переход. Косвенный переход, если все остальные возможности платформы будут заняты, потратит эти 100 тактов только один раз - при входе в конструкцию цикла и с этим можно мериться.

Как Вам такие соображения?
Совместимость с МК161 настолько важна? Это всего лишь шаг СЕМИКО, как показывает время - крайне не удачный.

Ветка перенесена
http://pmk.arbinada.com/node/1302

---------------------------
Истина где-то рядом
aldebaran.ru/author/samurov_vitaliyi/kniga_dozvonitsya_do_devyi/