Skif_PI Skif_PIauto MOD-2 MOD-3 TR-Locator
GODOGRAF Maps FOTO Forum Links
АвторСообщение
sevzirfo



ссылка на сообщение  Отправлено: 25.10.04 23:37. Заголовок: Visual VDI (Годограф)


Привет Всем!
Собрал свой вариант годографа на устаревшем микроконтроллере AT90s8535-8pc(в наличии был только этот). LCD использовано как в XLT - (128 точек по горизонтали и 64 по вертикали) Data Vision DG 12864 s2fbly(980руб). Самый дешёвый его аналог - МЕЛТ МТ12864А
В данный момент программа позволяет выводить оси Х и У и рисовать годограф. Годограф не стирается и поверх него рисуется следующий. Для испытаний в место двух каналов металлодетектора(Х и У) были подключены два потенциометра. В общем всё работает как задуманно быстро и без глюков....вроде ;). Как подключу к детектору - сфотографирую что получиться.
P.S. Схему, прошивку, исходный код - смотрите на сайте.

Спасибо: 0 
Ответов - 310 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 All [только новые]


sevzirfo
администратор


Откуда: ExFINLAND, VIIPURI
ссылка на сообщение  Отправлено: 10.07.06 21:12. Заголовок: Re:


Век живи - век учись!
Значит я неправильно управлял LCD...а как же их выбирать то, эти половинки???В даташите на МТ12864 ничего толком не написано.
Я делал так:

Оба чипа вкл(запись одновременно в обе половины экрана)

команда Display OFF
высокий уровень в Е1(первый чип экрана)
высокий уровень в Е2(второй чип экрана)
команда Display ON

Первый чип ВКЛ, второй ВЫКЛ

команда Display OFF
высокий уровень в Е1(первый чип экрана)
низкий уровень в Е2(второй чип экрана)
команда Display ON

Второй чип ВЫКЛ,первый ВКЛ

команда Display OFF
низкий уровень в Е1(первый чип экрана)
высокий уровень в Е2(второй чип экрана)
команда Display ON

Уровни удерживаются всё время.
Просветите, как выбирать половинки экрана!
При включеном дисплее (Display ON) подаёшь еденицу на первый или второй чип (E1 или Е2) и дергаешь строб чтения/записи???

Спасибо: 0 
Профиль
Vitalik_Pi
постоянный участник


Откуда: Росиия, Челябинск
ссылка на сообщение  Отправлено: 11.07.06 14:53. Заголовок: Re:


На сколько я понимаю команда включения и выключения дисплея включает и выключает развертку... нужна она лишь для торого чтоб при выводе большого количества байт на экране небло мерцания (к примеру выводим 100
байт но на 50 байте включается развертка и мы увидим только половину информации или мерцание)
так что включен дисплей или выключен ему глубоко по барабану.Далее по записи и чтению байта
из графиков отчетливо видно что запись сигналов R\W
CS1,CS2, D/I происходит по фронту импульса Е
а чтение и запись данных по спаду.
Действуем так:
(запись байта)
опускаем линию Е
выствляем сигналы CS1,CS2,D\I D0-D7 (как необходимо)
ждем
поднимаем линию Е
ждем
опускаем линию E
ждем
Поднимаем линию Е

Я так понимаю


Спасибо: 0 
Профиль
sevzirfo
администратор


Откуда: ExFINLAND, VIIPURI
ссылка на сообщение  Отправлено: 12.07.06 20:40. Заголовок: Re:


Буду пробовать...некогда щас,ремонт дома...покраска,металлопластик и тд)))

Спасибо: 0 
Профиль
zak
постоянный участник


ссылка на сообщение  Отправлено: 13.07.06 13:12. Заголовок: Re:


Нет, нет.... не так не так

Там всё просто... в мануале ничего толком не написано, но в мелтовском FAQ-е много интересного. http://www.md4u.ru/obmen/melt_faq.htm

Главное понять, что дисплей состоит из 2-х одинаковых дисплеев (64х64) соединенных параллельно.
Все сигналы (команды) поступают в первый, если CS1 в высоком состоянии, во второй, если CS2 в высоком состоянии. И самое интересное, можно подавать команды в оба дисплея, установив CS1 и CS2 в высокое состояние.

Как работать с этим ЖКИ в AB я не знаю...
На С - всё очень просто, 1-н раз разобрался, и забыл.
Вот, есть Драйвер, разбирайте, ковыряйте... там всё не очень просто, но разобраться можно.





Спасибо: 0 
Профиль
Vitalik_Pi
постоянный участник


Откуда: Росиия, Челябинск
ссылка на сообщение  Отправлено: 15.07.06 20:19. Заголовок: Re:


По поводу двух половинок экрана спорить не буду, это действительно так !!! Но я об этом писал уже в этом форуме очень давно.
К прошлому ответу добавлю что мне кажется последний цикл линии Е-лишний.Скорее всего линия Е изначально в низком состоянии, тогда все принимает нормальное значение и запись проходит за один цикл.

Спасибо: 0 
Профиль
Vitalik_Pi
постоянный участник


Откуда: Росиия, Челябинск
ссылка на сообщение  Отправлено: 15.07.06 20:34. Заголовок: Re:


Goodday All.....

Does anybody understand the Busy Flag problem on a GLCD with KS0108
chipset?
I can't get it operating, only with a small delay it works, but I need
speed.
Here is my ASM (for AVR micros) BF routine.


pollBF: cbi PORTC, E ;E lo
clr temp
out DDRD, temp ;PORTD all inputs
sbi PORTC, RW ;R/W hi (read mode)
cbi PORTC, DI ;D/I lo (intruction mode)
nop ;tAS > 140 ns
nop
loopBF: sbi PORTC, E ;E hi
nop ;tDDR > max. 320 ns
nop
in temp, PIND ;read pins PORTD
ldi temp, 0b00000000 ;only bit7
cbi PORTC, E ;E lo
nop
nop
cpi temp, 0x00 ;if BF = 1,
brne loopBF ; -> loop
ser temp ;else ->
out DDRD, temp ; PORTD all outputs
ret

I can't see an error in the code, can you?

Thanks.

Вот еще кое что по этой теме

Спасибо: 0 
Профиль
Vitalik_Pi
постоянный участник


Откуда: Росиия, Челябинск
ссылка на сообщение  Отправлено: 15.07.06 20:37. Заголовок: Re:


http://nomacon.gaw.ru/html.cgi/txt/lcd/chips/ks0108b/index.htm
по моему я брал информацию Здесь

Спасибо: 0 
Профиль
kusav



ссылка на сообщение  Отправлено: 18.07.06 13:25. Заголовок: Re:


в случае рисования линиями необходимы массивы для хранения копии экрана, координат X и Y. я еще храню уже посчитанный VDI. памяти нужно море. ставь атмегу32.

кстати уже 13я страница. может новую тему начать ?

Спасибо: 0 
Профиль
sevzirfo
администратор


Откуда: ExFINLAND, VIIPURI
ссылка на сообщение  Отправлено: 19.07.06 09:19. Заголовок: Re:


Vitalik_Pi
Всё заработало, как ты написал! Теперь без мерцания и на высокой скорости. Половинки экрана можно именно ВЫБИРАТЬ, а не ВКЛ/ВЫКЛ. как это было у меня

Спасибо: 0 
Профиль
Vitalik_Pi
постоянный участник


Откуда: Росиия, Челябинск
ссылка на сообщение  Отправлено: 20.03.07 09:06. Заголовок: Re:


С успехом перенес свою прогу на Атмегу16,для sevzifo
сложности нет ни какой проги полностью переносимы есть только одна тонкость в 8535 вектора прерываний двух байтные а в Атмеге16 четырех.тоесть в самом начале на ASME нужно написать не rjmp а просто jmp и так исправить все вектора остальное в проге менять не нужно.
Вот кусок для 8535
rjmp reset
rjmp INT0addr ;External Interrupt0 Vector Address
rjmp INT1addr ;External Interrupt1 Vector Address
rjmp OC2addr ;Timer2 compare match Vector Address
rjmp realtime ;OVF2addr ;Timer2 overflow Vector Address
rjmp ICP1addr ;Timer1 Input Capture Vector Address
rjmp OC1Aaddr ;Timer1 Output Compare A Interrupt Vector Address
rjmp OC1Baddr ;Timer1 Output Compare B Interrupt Vector Address
rjmp OVF1addr ;Overflow1 Interrupt Vector Address
rjmp prer_ind ;OVF0addr ;Overflow0 Interrupt Vector Address
rjmp SPIaddr ;SPI Interrupt Vector Address
rjmp URXCaddr ;UART Receive Complete Interrupt Vector Address
rjmp UDREaddr ;UART Data Register Empty Interrupt Vector Address
rjmp UTXCaddr ;UART Transmit Complete Interrupt Vector Address
rjmp ADCCaddr ;ADC Conversion Complete Interrupt Vector Address
rjmp ERDYaddr ;EEPROM Write Complete Interrupt Vector Address
rjmp ACIaddr ;Analog Comparator Interrupt Vector Address
Вот кусок для Атмеги 16
jmp reset
jmp INT0addr ;External Interrupt0 Vector Address
jmp INT1addr ;External Interrupt1 Vector Address
jmp OC2addr ;Timer2 compare match Vector Address
jmp realtime ;OVF2addr ;Timer2 overflow Vector Address
jmp ICP1addr ;Timer1 Input Capture Vector Address
jmp OC1Aaddr ;Timer1 Output Compare A Interrupt Vector Address
jmp OC1Baddr ;Timer1 Output Compare B Interrupt Vector Address
jmp OVF1addr ;Overflow1 Interrupt Vector Address
jmp prer_ind ;OVF0addr ;Overflow0 Interrupt Vector Address
jmp SPIaddr ;SPI Interrupt Vector Address
jmp URXCaddr ;UART Receive Complete Interrupt Vector Address
jmp UDREaddr ;UART Data Register Empty Interrupt Vector Address
jmp UTXCaddr ;UART Transmit Complete Interrupt Vector Address
jmp ADCCaddr ;ADC Conversion Complete Interrupt Vector Address
jmp ERDYaddr ;EEPROM Write Complete Interrupt Vector Address
jmp ACIaddr ;Analog Comparator Interrupt Vector Address
Остальное в программе не меняется

Спасибо: 0 
Профиль
Ответов - 310 , стр: 1 2 3 4 5 6 7 8 9 10 11 12 13 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 7
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет



Создай свой форум на сервисе Borda.ru
Текстовая версия