Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
16.06.2010, 16:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека LS020+LPC2368
А зачем 12 регистров гаммы? Зачем так много не в курсе?
|
|
|
|
16.06.2010, 17:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Библиотека LS020+LPC2368
Сообщение от Uragan90
|
А зачем 12 регистров гаммы? Зачем так много не в курсе?
|
Это для ч/б изображения в основном. Ну и для точной цветопередачи. Можно сильно с этим не заморачиваться, а брать рекомендуемые значения (типовые).
|
|
|
|
16.06.2010, 18:07
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека LS020+LPC2368
Я так понял что в видео память пишем-читаем согласно этих диаграм? Чтоб например написать приличную библиотеку надо вначале настроить пины NCS, DNC_SCK, NRD_E, NWR_RNW, DB0-DB15 их объявить, а потом уже настраивать таймера, думать над цветом и прочими заморочками? Так??
|
|
|
|
16.06.2010, 18:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Библиотека LS020+LPC2368
Сообщение от Uragan90
|
Так??
|
Да. Начинать однозначно с настройки выводов. Иначе управлять индикатором будет нечем.
|
|
|
|
16.06.2010, 18:59
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека LS020+LPC2368
Вот так как нибудь? Пины взяты просто для примера..
PHP код:
|
#define HIGH_LCD_CS (IOSET1 = (1 ‹‹ 0)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ LCD_CS
#define LOW_LCD_CS (IOCLR1 = (1 ‹‹ 0)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ LCD_CS
#define HIGH_LCD_RS (IOSET1 = (1 ‹‹ 1)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ RS
#define LOW_LCD_RS (IOCLR1 = (1 ‹‹ 1)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ RS
#define HIGH_LCD_RES (IOSET1 = (1 ‹‹ 2)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ RES
#define LOW_LCD_RES (IOCLR1 = (1 ‹‹ 2)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ RES
#define HIGH_LCD_RD (IOSET1 = (1 ‹‹ 3)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ RD
#define LOW_LCD_RD (IOCLR1 = (1 ‹‹ 3)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ RD
#define HIGH_LCD_WR (IOSET1 = (1 ‹‹ 4)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ WR
#define LOW_LCD_WR (IOCLR1 = (1 ‹‹ 4)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ WR
#define HIGH_DB0 (IOSET1 = (1 ‹‹ 5)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ DB0
#define LOW_DB0 (IOCLR1 = (1 ‹‹ 5)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ DB0
#define HIGH_DB1 (IOSET1 = (1 ‹‹ 6)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB1 (IOCLR1 = (1 ‹‹ 6)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB2 (IOSET1 = (1 ‹‹ 7)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB2 (IOCLR1 = (1 ‹‹ 7)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB3 (IOSET1 = (1 ‹‹ 8)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB3 (IOCLR1 = (1 ‹‹ 8)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB4 (IOSET1 = (1 ‹‹ 9)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB4 (IOCLR1 = (1 ‹‹ 9)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB5 (IOSET1 = (1 ‹‹ 10)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB5 (IOCLR1 = (1 ‹‹ 10)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB6 (IOSET1 = (1 ‹‹ 11)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB6 (IOCLR1 = (1 ‹‹ 11)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB7 (IOSET1 = (1 ‹‹ 12)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB7 (IOCLR1 = (1 ‹‹ 12)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB8 (IOSET1 = (1 ‹‹ 13)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB8 (IOCLR1 = (1 ‹‹ 13)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB9 (IOSET1 = (1 ‹‹ 14)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB9 (IOCLR1 = (1 ‹‹ 14)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB10 (IOSET1 = (1 ‹‹ 15)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB10 (IOCLR1 = (1 ‹‹ 15)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB11 (IOSET1 = (1 ‹‹ 16)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB11 (IOCLR1 = (1 ‹‹ 16)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB12 (IOSET1 = (1 ‹‹ 17)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB12 (IOCLR1 = (1 ‹‹ 17)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB13 (IOSET1 = (1 ‹‹ 18)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB13 (IOCLR1 = (1 ‹‹ 18)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB14 (IOSET1 = (1 ‹‹ 19)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ
#define LOW_DB14 (IOCLR1 = (1 ‹‹ 19)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ
#define HIGH_DB15 (IOSET1 = (1 ‹‹ 20)) //УСТАНАВЛИВАЕМ ВЫСОКИЙ УРОВЕНЬ DB15
#define LOW_DB15 (IOCLR1 = (1 ‹‹ 20)) //УСТАНАВЛИВАЕМ НИЗКИЙ УРОВЕНЬ DB15
|
|
|
|
|
16.06.2010, 19:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека LS020+LPC2368
Забыл ещё направление порта настроить... Надо наверно ещё по одной записи к пину добавить типа FIO1DIR=0x00000001...,?
|
|
|
|
16.06.2010, 19:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Библиотека LS020+LPC2368
Сообщение от Uragan90
|
Вот так как нибудь?
|
Ну для шины данных это необязательно. ![Улыбка](images/smilies/icon_smile.gif) Ее просто нужно подключать по порядку и выводить оптом, а не по отдельным выводам. Тем более что это в несколько раз быстрее.
|
|
|
|
16.06.2010, 20:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Библиотека LS020+LPC2368
Сообщение от Uragan90
|
Надо наверно ещё по одной записи к пину добавить типа FIO1DIR=0x00000001...,?
|
И не мешайте в кучу FIO1DIR и IOSET1 = (1 ‹‹ 17)
Вообще если есть быстрые порты использовать IOSET1 нет никакого смысла.
|
|
|
|
16.06.2010, 20:11
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.09.2009
Сообщений: 1,899
Сказал спасибо: 470
Сказали Спасибо 408 раз(а) в 255 сообщении(ях)
|
Re: Библиотека LS020+LPC2368
Это как оптом? Допустим надо 10, 5, 1 биты высокий уровень, а остальные по нулям?
|
|
|
|
16.06.2010, 20:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Библиотека LS020+LPC2368
Сообщение от Uragan90
|
Это как оптом?
|
Есть аж три варианта.
Во первых замаскировать выводы которые не должны изменяться в FIOxMASK
Код:
|
uint32_t Value = 0x00AA5500;
FIO1MASK = 0xFF0000FF; // маска - изменяться будут только [23:8]
FIO1PIN = Value;
// вывели в порт значение, остальные выводы не изменили свое состояние |
Можно через два вывода в FIOxSET и FIOxCLR
Код:
|
uint32_t Value = 0x00AA5500;
FIO1SET = Value;
FIO1CLR = (~Value)& 0x00FFFF00; |
И третий
Код:
|
uint32_t Value = 0x00AA5500;
FIO1PIN = (FIO1SET & 0xFF0000FF)|Value; |
В данном конкретном случае самый удобный - второй.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
Плата LPC2368
|
Uragan90 |
Микроконтроллеры, АЦП, память и т.д |
170 |
13.04.2010 13:03 |
библиотека HC12 для Proteus
|
Fenolftalein |
Proteus, KiCAD и другие ECAD |
0 |
12.01.2010 10:47 |
Часовой пояс GMT +4, время: 02:59.
|
|