|
"Курсовой макет" |
|
|
|
Jun 3 2006, 12:31
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 3-06-06
Из: Краснодар
Пользователь №: 17 736

|
Доброго времени суток господа!!! Делаю велокомпьютер(Скорость, лаг) хочу использовать графический lcd от трубки Ericsson A2618s.... Разобрал телефон, снял нежно матрицу и присел.... В самом толстом месте ЖК-матрица имеет толщину ~2.17 мм, выполнена она на стекле в следствие чего "просвечивается" насквозь.... Всё что нашел из надписей на матрице - RB129B .... Сверху нанесено напыление 6-ти контактов Как разобраться какой за что отвечат????
Сообщение отредактировал Dj Kitt - Jun 3 2006, 12:33
--------------------
 Да, мы такая нация! Мы и Гитлера до самоубийства довели! 
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 15)
|
Jun 3 2006, 13:29
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 3-06-06
Из: Краснодар
Пользователь №: 17 736

|
Цитата Так делал бы прямо из Эрика, там внутри AVR Не ответ.... Был бы Эрик рабочим я бы его не разбирал....
--------------------
 Да, мы такая нация! Мы и Гитлера до самоубийства довели! 
|
|
|
|
|
Jun 4 2006, 09:20
|
Группа: Участник
Сообщений: 7
Регистрация: 24-05-06
Пользователь №: 17 412

|
|
|
|
|
|
Jun 22 2006, 10:28
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(Dj Kitt @ Jun 22 2006, 13:53)  Блин.... в файле *****.h не прописан ни один разряд ни одного регистра TWI, как их прописать????? Пришлите кто-нить файл с прописанными разрядами!!!!! Или обясните на конкретном примере как их прописывать!!!!!
Заранее спасибо! Можно поступить так: Берется *.h на нужный контроллер из IAR-а. Копируются все определения битов в буфер обмена. Вставляются в *.h от CVAVR.
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Jun 22 2006, 18:17
|

Знающий
   
Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768

|
Цитата(otrog @ Jun 22 2006, 14:28)  Цитата(Dj Kitt @ Jun 22 2006, 13:53)  Блин.... в файле *****.h не прописан ни один разряд ни одного регистра TWI, как их прописать????? Пришлите кто-нить файл с прописанными разрядами!!!!! Или обясните на конкретном примере как их прописывать!!!!!
Заранее спасибо!
Можно поступить так: Берется *.h на нужный контроллер из IAR-а. Копируются все определения битов в буфер обмена. Вставляются в *.h от CVAVR. И так 30 раз подряд для всех чипов,имеющих TWI.Имхо,лучше создать свои или взять готовые библио- течные файлы twi master,twi slave и использовать их. А разряды прописываются так: #define TWIE 0 #define TWEN 2 #define TWWC 3 #define TWSTO 4 #define TWSTA 5 #define TWEA 6 #define TWINT 7
--------------------
"Hello, word!" - 17 errors 56 warnings
|
|
|
|
|
Jun 25 2006, 08:12
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 3-06-06
Из: Краснодар
Пользователь №: 17 736

|
Огромное спасибо всем, кто отозвался!!! Новый вопрос, ламерский, поэтому просьба не пинать начинающего  Для определения скорости и всего остального я буду использовать проверенный способ - геркон и магниты. 1)Как я понял, мне необходимоо этот геркон вещать лапу внешнего прерывания INT0/INT1, если не прав - поправте. 2) пришло прерывание, счетчик прибавил в к пройденному пути Х.ХХ метров, а как мне засечь время между пришедшими импульсами(вопрос ламерский,Т.К. это принцип частотомера для до 100-150 гц, я так и не понял как они работают...( на колесе будут несколько магнитов))??? Разложите пожалуйста этот вопрос по полочкам, очень прошу! Заранее спасибо!
Сообщение отредактировал Dj Kitt - Jun 25 2006, 08:14
--------------------
 Да, мы такая нация! Мы и Гитлера до самоубийства довели! 
|
|
|
|
|
Jun 25 2006, 09:00
|

Иногдящий
   
Группа: Свой
Сообщений: 691
Регистрация: 28-02-05
Пользователь №: 2 931

|
Цитата 1)Как я понял, мне необходимоо этот геркон вещать лапу внешнего прерывания INT0/INT1, если не прав - поправте В принципе, верно, хотя при необходимости можно повесить его на любую ногу контроллера, а состояние этой ноги считывать программно в основном цикле. 100 Гц - достаточно маленькая частота для программной обработки  . Цитата 2) пришло прерывание, счетчик прибавил в к пройденному пути Х.ХХ метров, а как мне засечь время между пришедшими импульсами Завести таймер на отсчет, скажем, миллисекунд и по прерыванию от геркона считывать и обнулять этот таймер. А дальше элементарная математика.
|
|
|
|
|
Jun 25 2006, 19:03
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 3-06-06
Из: Краснодар
Пользователь №: 17 736

|
Спасибо, но это ответ не совсем для ламера.....=)
Т.е. таймер считает например 10 мс, когда приходит прерывание, отсчитанное значение уходит в переменную, а сам счетчик сбрасывается, я правильно понял??? Поправте.... И еще, опишите плиз на С алгоритм обработкий таймера. ( на форуме порылся, там почти всё на АСМе)
Сообщение отредактировал Dj Kitt - Jun 25 2006, 19:04
--------------------
 Да, мы такая нация! Мы и Гитлера до самоубийства довели! 
|
|
|
|
|
Jun 25 2006, 20:11
|

Профессионал
    
Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380

|
Цитата Завести таймер на отсчет, скажем, миллисекунд и по прерыванию от геркона считывать и обнулять этот таймер. А дальше элементарная математика. Берете таймер, у которого есть режим CTC (clear timer on compare). Ставим в этот режим. В регистр сравнения пишем число клоков,приходящихся на 1мс (наприметр для 10 МГЦ - 10 000, не забываем также ,что у таймера есть прескаллер) .Разрешаем прерывание по сравнению. Код void InitSysTimer2(void) { TCNT2 = 0; OCR2 = 138;//0.1мкс f= 11 059 000 TCCR2 = 0; TCCR2 = (1 << WGM21)|(1 << CS21);//CTC mode TIMSK |= (1 << OCIE2); } В прерывании увеличиваем переменную Код volatile int ms_count Все у вас пошел счет времени. В прерывании от геркона, считываем ее - это будет время одного(или 1/2,1/3, 1/4) оборота в зависимости от количества срабатываний на оборот и сбрасываем. Единственное, что следует продумать - это разруливание двух прерываний, оперирующих с одной переменной. Ну и напоследок - для таких условий как велосипед, лучше не геркон , а датчик Холла.
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
|
Jul 6 2006, 07:21
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(Dj Kitt @ Jul 6 2006, 11:03)  Да вроде всё есть... Только что специально удалил " }" перед Код interrupt [TIM2_COMP] void timer2_comp_isr(void) CV выдал Цитата Undefined symbol "interrupt"
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Jul 7 2006, 08:37
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 3-06-06
Из: Краснодар
Пользователь №: 17 736

|
Оперативно, блин.....  Сорри, в упор не вижу, где нада енту самую скобку закрыть....  ((
--------------------
 Да, мы такая нация! Мы и Гитлера до самоубийства довели! 
|
|
|
|
|
Jul 7 2006, 08:47
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Вынесите объявление прерывания из тела main-а. Во: Код ////////// ?anu ?aaeuiiai a?aiaie n iiiaioa aee??aiey //////////////// interrupt[TIM2_OVF] void timer2_ovferfow(void) { // ia?acaa?o?aai oaeia? TCNT2=0x00; sec=sec++; if (sec == 60) { sec=0; min++; if (min==60) { min=0; hour++; } } }
interrupt [TIM0_OVF] void timer0_ovf_isr(void) { // Reinitialize Timer 0 value TCNT0=0x7A; // Place your code here }
interrupt [EXT_INT1] void ext_int1(void) { ee_put=ee_put+2.1;
init_lcd; LCD_Write; }
void main(void) { ////Eieo 2-ai oaeia?a
PORTB=0x00; DDRB=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: On // INT1 Mode: Falling Edge GICR=0x80; MCUCR=0x08; GIFR=0x80; // Global enable interrupts #asm("sei")
while (1) { // Place your code here } } Совет на будущее. Старайтесь структурировать свои программы, они от этого будут легче читаться  .
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
|
Jul 8 2006, 12:39
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 3-06-06
Из: Краснодар
Пользователь №: 17 736

|
Итак... В принципе программу ПОЧТИ закончил.... Осталось самое интересное - преобразование нужных мне символов в код для отправки по i2c в контроллер LCD... У LCD контроллер PCF8548, так вот он вырисовывает всё "Слева направо, сверху вниз", блин.... так вот одна буква/цифра имеет формат 5х8, то мне необходимо в каждом такте подряд выводить побитно какой пиксель зажигать... т.е. например буква Р будет иметь вид: (Высота 5 пикселей, ширина - 3) 11111000 10100000 11100000 - в таком виде и порядке я должен её вырисовывать.... Так вот вопрос: [u] Как мне преобразовать результаты для вывода их на экран?????[/u] Есть идея, но, как мне кажется она бредовая(хотя, быть может ед.вариант). Я создаю в EEPROM(или в программе) массивы для всех букв, цифр, знаков и т.д. какие буду использовать..., далее я в цикле буду выводить "как оно надо" на экран....( этот вариант меня не устраивает по причине увеличения объема программы..... Поправляйте, предлагайте... Помогайте, короче! Заранее спасибо!
Сообщение отредактировал Dj Kitt - Jul 8 2006, 12:42
--------------------
 Да, мы такая нация! Мы и Гитлера до самоубийства довели! 
|
|
|
|
|
Jul 8 2006, 13:05
|

Профессионал
    
Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380

|
Если индикатор без встроенного знакогенератора (а ИМХО PCF8548 являеться таковым), придется эти самые символы держать в виде таблиц во флэш, никуда от этого не уйдешь. По логике - делается функция которая вычисляет позицию знакоместа (переводит строку и позицию символа в координаты пикселей), а потом выводит последовательно 5 байт из таблицы в которой описан растр. В принципе эти растры возможно держать сжатыми и распаковывать на лету(повторяющихся последовательностей будет очень много), но это может сильно осложить задачу. Хотя можно и использовать несколько макросов для наиболее часто встречающихся последовательностей( например все 0.все 1) . Да и еще. Существуют программы для создания таблиц шрифтов, вручную мучится не стоит.
--------------------
Вони шукають те, чого нема, Щоб довести, що його не існує.
|
|
|
|
|
Jul 8 2006, 14:38
|
Участник

Группа: Свой
Сообщений: 54
Регистрация: 3-06-06
Из: Краснодар
Пользователь №: 17 736

|
Цитата Существуют программы для создания таблиц шрифтов, вручную мучится не стоит. Подскажите плиз где их взять....?
--------------------
 Да, мы такая нация! Мы и Гитлера до самоубийства довели! 
|
|
|
|
|
Jul 10 2006, 05:28
|
Местный
  
Группа: Свой
Сообщений: 232
Регистрация: 22-02-06
Из: Воронеж
Пользователь №: 14 589

|
Цитата(Dj Kitt @ Jul 8 2006, 18:38)  Цитата Существуют программы для создания таблиц шрифтов, вручную мучится не стоит. Подскажите плиз где их взять....? http://electronix.ru/forum/index.php?showtopic=16075
--------------------
Истина рождается в спорах; но когда страсти кипят, истина испаряется.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|