Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
31.10.2008, 12:33
|
#21
|
Прописка
Регистрация: 15.03.2007
Адрес: Украина, Новомосковск
Сообщений: 258
Сказал спасибо: 5
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
|
Сообщение от krasla
|
Вот ещё один конвертор, может подойдёт.
Успехов!!!!!
|
Пример перекодировки моего аватара.
Тотже файл в ворде за две минуты убрал DATA,&H.
Поиск и замена.
Прикрепленный файл: 177406.zip
__________________
Жизнь на столько короткая,что не остаётся времени,что-бы пожить.
|
|
|
|
31.10.2008, 14:46
|
#22
|
Почётный гражданин KAZUS.RU
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
|
Спасибо,
так как с МикроБейсиком разбираюсь более-менее успешно, запихал весь BMP файл в массив констант IMAGE. Перекодировку сделал ПИКом.
Код:
|
sub procedure SHOW_IMAGE
dim _I, _J, _X,_Y,_X_size,_Y_size,DATA_START,PALETTE_START, _Temp, IMAGE_SIZE as word
dim _RED,_GREEN,_BLUE as byte
IMAGE_SIZE = IMAGE[3]
IMAGE_SIZE = IMAGE_SIZE ‹‹ 8
IMAGE_SIZE = IMAGE_SIZE + IMAGE[2]
DATA_START = IMAGE[11]
DATA_START = DATA_START ‹‹ 8
DATA_START = DATA_START + IMAGE[10]
PALETTE_START = IMAGE[15]
PALETTE_START = PALETTE_START ‹‹ 8
PALETTE_START = PALETTE_START + IMAGE[14]
PALETTE_START = PALETTE_START + 14
_X = 5
_Y = 150
_X_size = 100
_Y_size = 168
Usart_Write($49)
Usart_Write(Hi(_X))
Usart_Write(Lo(_X))
Usart_Write(Hi(_Y))
Usart_Write(Lo(_Y))
Usart_Write(Hi(_X_size))
Usart_Write(Lo(_X_size))
Usart_Write(Hi(_Y_size))
Usart_Write(Lo(_Y_size))
Usart_Write(8) '8 битово изображение
for _I = (IMAGE_SIZE - _X_size - 1) to DATA_START step -100
_J = 0
while _J ‹ _X_size
inc(_J)
_Temp = IMAGE[_I + _J]
_Temp = _Temp ‹‹ 2
_BLUE = IMAGE[PALETTE_START + _Temp ]
_GREEN = IMAGE[PALETTE_START + _Temp + 1 ]
_RED = IMAGE[PALETTE_START + _Temp + 2]
_BLUE = _BLUE ›› 6
_GREEN = _GREEN ›› 5
_RED = _RED ›› 5
_Temp = _BLUE
_Temp = _Temp ‹‹ 3
_Temp = _Temp or _GREEN
_Temp = _Temp ‹‹ 3
_Temp = _Temp or _RED
Usart_Write(_Temp)
wend
next _I
WAIT_ACK
end sub |
Пока все очень сыро, да основа для дальнейшего усовершенствования имеется
‹center›
-- Прилагается рисунок: --
[img]nuke/users_images/31102008/2201523.JPG[/img]‹/center›
|
|
|
|
31.10.2008, 22:11
|
#23
|
Почётный гражданин KAZUS.RU
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
|
Mда. Должен выжать воду из кода
Код:
|
sub procedure SHOW_IMAGE
dim _I, _J, _X_size,_Y_size,DATA_START,PALETTE_START, _Temp, IMAGE_SIZE as word
dim _RED,_GREEN,_BLUE as byte
IMAGE_SIZE = IMAGE[3] 'Размер файла / массива IMAGE BMP
IMAGE_SIZE = IMAGE_SIZE ‹‹ 8
IMAGE_SIZE = IMAGE_SIZE + IMAGE[2]
DATA_START = IMAGE[11] 'Начало области с байтами цвета пикселей
DATA_START = DATA_START ‹‹ 8
DATA_START = DATA_START + IMAGE[10]
PALETTE_START = IMAGE[15] 'Начало палитры
PALETTE_START = PALETTE_START ‹‹ 8
PALETTE_START = PALETTE_START + IMAGE[14]
PALETTE_START = PALETTE_START + 14
_X_size = 100 'Размер X
_Y_size = 168 'Размер Y
for _I = (IMAGE_SIZE - _X_size - 1) to DATA_START step -100
_J = 0
while _J ‹ _X_size
inc(_J)
_Temp = IMAGE[_I + _J] 'Берем байт цвета пикселя
_Temp = _Temp ‹‹ 2 'Умножаем на 4. В палитре 4 байта с цветами BGR. Последний не используется.
_BLUE = IMAGE[PALETTE_START + _Temp ] 'Байт синего из палитры
_GREEN = IMAGE[PALETTE_START + _Temp + 1 ] 'Байт зеленого
_RED = IMAGE[PALETTE_START + _Temp + 2] 'Байт красного
_BLUE = _BLUE ›› 6 'uVGA имеет 2 бита синего. Из _BLUE берем 2 старших
_GREEN = _GREEN ›› 5 '3 старших бита зеленого
_RED = _RED ›› 5 '3 старших бита красного
_Temp = _BLUE 'В _Temp запихиваем биты синего
_Temp = _Temp ‹‹ 3 'Смещение на 3 бита влево
_Temp = _Temp or _GREEN 'Добавляем зеленые биты
_Temp = _Temp ‹‹ 3 'Опять смещение на 3 бита
_Temp = _Temp or _RED 'Добавляем красные биты
'Получаем _Temp в формате BBGGGRRR
Usart_Write(_Temp)'Запихиваем данные в uVGA
wend
next _I
end sub |
Прошу прощения за переменные типа _BLUE В коде имеется глобальная константа BLUE, так же RED и GREEN. Появились подозрения путаницы. Потому и поставил '_' впереди BLUE. Заодно пострадало и почти все остальное
Удачи!
|
|
|
|
31.10.2008, 22:18
|
#24
|
Временная регистрация
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
А в бейсике структур нет ?
Жалко на код смотреть...
__________________
разум когда-нибудь победит... (с)
|
|
|
|
31.10.2008, 22:20
|
#25
|
Вид на жительство
Регистрация: 15.03.2005
Сообщений: 351
Сказал спасибо: 17
Сказали Спасибо 8 раз(а) в 8 сообщении(ях)
|
Сообщение от user_ushastyj
|
А в бейсике структур нет ?
Жалко на код смотреть...
|
вы наверна программер. а эмбеддеры пишут кто в лес кто по дрова. самому иногда страшно и стыдно бывает
|
|
|
|
31.10.2008, 22:33
|
#26
|
Временная регистрация
Регистрация: 06.12.2007
Сообщений: 91
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
да просто напрашивается
Код:
|
union
{
struct{
unsigned BLUE:2;
unsigned GREEN:3;
unsigned RED:3
}rgb;
unsigned char Temp;
}un;
un.rgb.BLUE=arr[a];
un.rgb.GREEN=arr[a+1];
un.rgb.RED=arr[a+2];
Usart_Write(Temp); |
__________________
разум когда-нибудь победит... (с)
|
|
|
|
31.10.2008, 22:33
|
#27
|
Почётный гражданин KAZUS.RU
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
|
Сообщение от user_ushastyj
|
А в бейсике структур нет ?
|
В этом Бейсике структуры имеются. Злой вы однако. Писал же я
Цитата:
|
Пока все очень сыро, да основа для дальнейшего усовершенствования имеется
|
А вы сразу за зад
Цитата:
|
Жалко на код смотреть...
|
Все это за пол дня написал в спешке и сомнениях. Противно однако.
|
|
|
|
31.10.2008, 23:19
|
#28
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от Popeye
|
Все это за пол дня написал в спешке и сомнениях. Противно однако.
|
Цитата:
|
Не ошибается лишь тот , кто ничего не делает...
|
__________________
Осторожно , злой кот
|
|
|
|
05.11.2008, 16:24
|
#29
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,535
Сказал спасибо: 698
Сказали Спасибо 4,313 раз(а) в 1,977 сообщении(ях)
|
Я тут немного раньше этот вопрос тоже поднимал:
https://kazus.ru/forum/topics/13013.html
|
|
|
|
06.11.2008, 21:40
|
#30
|
Почётный гражданин KAZUS.RU
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
|
Kabron спасибо, но в сущности я проблему почти решил, надеюсь Да и есть необходимость не только в ПИК заливать, надобно пошаманить несколько изображений в память I2C запихать. Т.е. еще один выходной файл, для программатора памяти. Тут борюсь с Вижуал Бейсиком, окончу дам исходники. Надеюсь на этот раз никто не будет возмущатся деревянным кодом
Удачи!
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
data memoty
|
Boris_Britva |
Микроконтроллеры, АЦП, память и т.д |
10 |
26.08.2008 09:35 |
wav, bmp -> hex
|
dosikus |
Микроконтроллеры, АЦП, память и т.д |
4 |
23.09.2007 21:35 |
DATA, DB, DE… как читать?
|
maxNTF |
Микроконтроллеры, АЦП, память и т.д |
0 |
13.02.2006 17:10 |
Multisensor Data Fusion - Помогите
|
niklaus |
Микроконтроллеры, АЦП, память и т.д |
0 |
24.07.2005 01:14 |
Часовой пояс GMT +4, время: 13:01.
|
|