Проблемы с портами ввода\вывода.
|
|
ora888 |
Дата: Чт, 02.04.2009, 18:20 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 29.03.2009
Статус:
Offline
|
ПОхелпите новичку. LIST p=16F877 __CONFIG 03FF1H STATUS EQU 0x03 PORTD EQU 0x08 PORTA EQU 0x05 TRISD EQU 0x08 TRISA EQU 0x05 RP0 equ 5 RP1 equ 6 ORG 0 GOTO START START: BSF STATUS,RP0 BCF STATUS,RP1 clrw movwf TRISD movlw 0xFF movwf TRISA BCF STATUS,RP0 BCF STATUS,RP1 movlw 0x00 movwf PORTD movlw 0xFF movwf PORTD END Вывожу в PORTD сначало 0x00, затем через определённую задержку, допустим с помощью NOP- ов, 0xFF. Заливаю hex фаил в контроллер в протеусе, и у меня ЦИКЛИЧЕСКИ?? начитают менятся выходы PORTD, то все нули, то все единицы? Где в моей проге организован цикл я не понимаю..
Сообщение отредактировал
ora888 - Чт, 02.04.2009, 18:21
|
|
|
|
DAlexV |
Дата: Чт, 02.04.2009, 19:36 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Глюков не обнаружено !!!! MPLAB 8.10 Шпротеус 7.2 SP6(5368) Quote (ora888) Заливаю hex фаил в контроллер в протеусе Зачем ???? Это MPLAB прекрасно сам делает !!!! И можно смотреть пошагово.
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
ora888 |
Дата: Сб, 04.04.2009, 11:41 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 29.03.2009
Статус:
Offline
|
Спасибо, с выводом вроде разобрался. Возникла другая проблемка, с чтением из портов. Как я понимаю, при чтении 0xff --> TRIS, у нас триггеры-защелки от портов отваливаются, тогда вопрос куды физически идут сигналы? програмка: LIST p=16f877 __CONFIG 03FF9H STATUS EQU 0x03 PORTA EQU 0x05 PORTB EQU 0x06 TRISA EQU 0x05 TRISB EQU 0x06 PORTD EQU 0x08 TRISD EQU 0x08 RP0 EQU 5 RP1 EQU 6 W EQU 0 ORG 0 GOTO START START: BSF STATUS,RP0 BCF STATUS,RP1 clrw movwf TRISB movwf TRISD movlw 0xFF movwf TRISA BCF STATUS,RP0 BCF STATUS,RP1 clrw movwf PORTB clrw movf PORTA,W movwf PORTB movwf PORTD END Хочу считать с сигнал с PORTA и переслать его в порты B и D. Подаю на входы PortA 1-цы, в итоге смотрю на регистр PORTA, там все нули, на выходы потров B и D выдаёт вообще 0х10. Собственно вопрос, как читать с потра.
|
|
|
|
DAlexV |
Дата: Сб, 04.04.2009, 12:35 | Сообщение # 4 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Батеннька !!! А мануал читать пробывали ???? ПортА нужно для начала сделать цифровым !!!! (аналоговый по умолчанию) Типа: BSF STATUS,RP0 MOVLW 0X06 MOVWF ADCCON1 после это уже через trisa конфигурируем порт (вход, выход) а из porta читаем или пишем. Дай мыло скину русский мануал по 877
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
holyuser |
Дата: Сб, 04.04.2009, 12:44 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Могу и подсказать
Сообщений:
228
Замечания:
±
На сайте с 12.12.2007
Статус:
Offline
|
Все правильно Вы делаете, только надо сначала отключить PORTA от АЦП --> ADCON1 = 0x07. Поэтому, когда Вы читаете PORTA в аналоговом режиме, то все биты читаются как "0", за изключением PORTA.4, который всегда цифровый, оттуда и получаете 0x10 = %00010000. Потом, надо иметь ввиду, что PORTA не полный, в нем отсуствуют физически два старших бита. p.s. О! Пока писал уже ответили...
Сообщение отредактировал
holyuser - Сб, 04.04.2009, 12:46
|
|
|
|
ora888 |
Дата: Сб, 04.04.2009, 13:31 | Сообщение # 6 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 29.03.2009
Статус:
Offline
|
ооо спасибо за оперативность. to DAlexV Мануал русский есть, но как говорится, гляжу в книгу, вижу.. Только когда ткнули, заметил что к чему =)
|
|
|
|
DAlexV |
Дата: Сб, 04.04.2009, 13:39 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
А почему Асма, а не Basic ??? Там все проще. Хотя Асму знать то же не помешает.
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
|
|
|
|
ora888 |
Дата: Сб, 04.04.2009, 14:50 | Сообщение # 8 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 29.03.2009
Статус:
Offline
|
Ну для начала нужно с азами разобраться, с архитектурой, чтобы дурацких вопросов не возникало, ну а затем можно и на СИ перейти. Basic, страшное слово, когда он родился, меня ещё в проекте не было ))
|
|
|
|
DAlexV |
Дата: Сб, 04.04.2009, 14:58 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Quote (ora888) Basic, страшное слово Чем же он так пугает ???? Я присутствоваал прирождении, симпатичный малый. Сам то же начинал с Асмы, но чем больше программа, тем сложнее в ней разобраться. С басиком все проще. Освоил за месяц. А СИ ????!!!! Ну я незнаю. Я для компа проги на VB6 пишу, может поэтому мне проще.
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Сообщение отредактировал
DAlexV - Сб, 04.04.2009, 15:00
|
|
|
|
ora888 |
Дата: Вс, 05.04.2009, 19:51 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 29.03.2009
Статус:
Offline
|
Да собственно ничем, просто не знаком ) Трабла номер 3.. Борюсь с матричной клавиатурой 4x4. По порту D гоняю нули, с порта А снимаю значение, если появился 0, значит пришёл KONEC, выход. Всё стандартно. Вопрос в чём, когда всё статично, тоесть подаю сам на порт А постоянно 0 в один из разрядов, KONEC приходит, на порте D самое первое значение вывода 0хF7. Ежели тестить прогу в динамике опроса, порт А не реагирует, на приход нуля. Проблема видимо в нестыковке частот, но я не понимаю, как её исправить..
|
|
|
|
DAlexV |
Дата: Пн, 06.04.2009, 00:36 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Давай все делать правильно !!!! Архив rar или zip. В нем: Проджект в MPLAB и схема в Шпротеусе. Могет у тебя в схематике косяк. А мы тут над асмой голову ломать будем. Я асму уже подзабывать стал.
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Сообщение отредактировал
DAlexV - Пн, 06.04.2009, 00:39
|
|
|
|
ora888 |
Дата: Вт, 07.04.2009, 14:18 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 29.03.2009
Статус:
Offline
|
Проблема в схемотехнике тут врядли , т.к. проект слизан с калькулятора в примерах протеуса )). Единственное, что у них стоял внешний тактовый генератор , а я его убрал =) Добавлено (07.04.2009, 2:18:39) --------------------------------------------- Собственно всё, разобрался с ошибкой.
|
|
|
|
DAlexV |
Дата: Вт, 07.04.2009, 16:40 | Сообщение # 13 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Quote (ora888) Собственно всё, разобрался с ошибкой. Вечером доберусь до компа, скину несколько примеров по работе с клавой на ASMе. И еще вопрос. Какой у тебя MPLAB стоит? У меня товой проэкт не открылся. Пришлось свой состовлять. Погорячился, ссылки нерабочие: Вот что нашел: http://radiotech.by.ru/Shematic_PCB/PIC-controlers/calc.htm http://www.mikerj.clara.net/keypad.html http://www.mikerj.clara.net/keypad.html
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Сообщение отредактировал
DAlexV - Вт, 07.04.2009, 19:57
|
|
|
|
ora888 |
Дата: Чт, 09.04.2009, 14:36 | Сообщение # 14 |
Группа:
Проверенные
Ранг:
Новенький
Сообщений:
9
Замечания:
±
На сайте с 29.03.2009
Статус:
Offline
|
MPLAB 5.70.40 ))
|
|
|
|
DAlexV |
Дата: Чт, 09.04.2009, 14:56 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
657
Замечания:
±
На сайте с 13.05.2008
Статус:
Offline
|
Поставь 8.1, там есть прямая состыковка с Proteus. И не надо HEX подставлять каждый раз
Будьте оригинальны-не повторяйте чужих ошибок ! Рыба сдохла. Теперь STM32(TS)+C#(VS).Старею :)
Сообщение отредактировал
DAlexV - Чт, 09.04.2009, 20:48
|
|
|
|