Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
07.01.2008, 19:27
|
#1
|
Частый гость
Регистрация: 18.10.2007
Сообщений: 22
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Реализация чтения таблиц для Pic
Привет всем, нужна ваша помощь.
Как на асемблере написать таблицу для Pic?
Например таблицу с ASCII кодов.
|
|
|
|
07.01.2008, 21:29
|
#2
|
Частый гость
Регистрация: 18.10.2007
Сообщений: 22
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Такая ситуация.
Есть идея сделать модуль управления и принятия решений в зависимости от поступившего в модуль кода.
В модуль поступает байт информации, он принимает код, перебирает в своей памяти помещенные коды, при совпадении кодов, принятого и записанного в памяти принимается то или иное решение. Предположительно пик 16f628a? прием байта при помощи модуля USART.
|
|
|
|
07.01.2008, 21:40
|
#3
|
Временная регистрация
Регистрация: 11.12.2007
Сообщений: 79
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
а...
Прикрепленный файл: 1851.rar
|
|
|
|
07.01.2008, 22:25
|
#4
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,532
Сказал спасибо: 698
Сказали Спасибо 4,312 раз(а) в 1,976 сообщении(ях)
|
Select Case...
то же мне Бином Ньютона
|
|
|
|
07.01.2008, 22:51
|
#5
|
Частый гость
Регистрация: 18.10.2007
Сообщений: 22
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
urry1 спасибо. Если правильно понял это на С ?
Чесно говоря не силен. Можно получить пояснения к схеме и программе?
|
|
|
|
07.01.2008, 23:00
|
#6
|
Временная регистрация
Регистрация: 11.12.2007
Сообщений: 79
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Угу, на асме я уже программить не буду. Ссылку на компилятор - хм, да, лички здесь нет - кстати, почему ? никогда раньше не задумывался - ладно, напишите что-то на urry1 cobaka rambler.ru
|
|
|
|
08.01.2008, 00:52
|
#7
|
Частый гость
Регистрация: 18.10.2007
Сообщений: 22
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Вещь классная.
А есть у кого нибуть на асемблере? Что-то С туговато на понимание.
|
|
|
|
08.01.2008, 01:21
|
#8
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Непонятна суть вопроса. Что требуется то? Таблица? У микрочиповских контроллеров нет возможности напрямую работать с памятью программ. Таблицы делаются так:
Код:
|
;W содержит
;значение смещения
CALL TABLE ;
;W теперь содержит
;значение из таблицы.
TABLE ADDWF PC ;W=смещение
RETLW k1;Начало таблицы table
RETLW k2
*
*
*
RETLW kn; конец таблицы table |
Или что-то другое нужно?
|
|
|
|
08.01.2008, 01:32
|
#9
|
Частый гость
Регистрация: 18.10.2007
Сообщений: 22
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Это я понял.
Смысл вот в чем: Есть устройство посылающее коды от 0 до 255 (вкладываемся в байт) Посылает на приемное устройство, которое должно расшифровать, что за код получен и в зависимости от этого, например засветить цифру 5 на индикаторе.
Первоначально собирался написать по принципу вычитания из кода принятого поочереди константы записанные в программе. Потом опрашивем флаг С и в зависимости от этого производим ту или иную операцию.
|
|
|
|
08.01.2008, 18:28
|
#10
|
Частый гость
Регистрация: 23.09.2007
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Уважаемый J-t, к сожалению я не силен в асме, но решение есть.
Во-первых, что тебе мешает сделать тупо сравнения:
ЕСЛИ К=1, ТО GOTO Sub_1
ЕСЛИ К=2, ТО GOTO Sub_2
...................
И т.д.
Во-вторых, расположи подпрограммы, обрабатывающие твои коды так, чтобы адреса входов в них располагались на равном расстоянии в адресном пространстве. Надо знать адрес первой подпрограммы и интервал. Сделать, чтобы адрес перехода к подпрограмме вычислялся как АДРЕС=f(К). Например: АДРЕС=3*К+А0.
Я понимаю, это, наверное, технически очень сложно, но у тебя же не мегабайты памяти, разберешься!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:26.
|
|