Например TDA7294

Форум РадиоКот • Просмотр темы - Проблема с кодом
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вт июн 10, 2025 15:48:36

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 19 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Проблема с кодом
СообщениеДобавлено: Чт июн 14, 2012 21:44:51 
Первый раз сказал Мяу!

Зарегистрирован: Сб июн 09, 2012 23:09:42
Сообщений: 35
Рейтинг сообщения: 0
Помогите пожалуйста, совсем отчаялся. Сварганил написал код MPlab не хочет его компилить ругается вот так
Код:
Error[113]   D:\SDB\16F628ATEMP.ASM 37 : Symbol not previously defined (_DATA_CP_OFF)

Не пойму в чем проблема ведь слово начальной конфигурации было в самом начале в шаблоне все того же MPlab, еще заметил странности попытался зачистить регистр ANSEL, что тоже не получилось
Код:
Error[113]   D:\SDB\16F628ATEMP.ASM 90 : Symbol not previously defined (ANSEL)
хотя проверял несколько раз такой регистр есть. если удалить эти строки то при отладке МК работает как то странно. Допустим порт А0 установлен на выход, и при подаче на него лог 1 ничего не происходит(смотрел в View->Watch) использовал стандартное средство MPLAB SIM. не работает так же ни в протеусе ни на железе(хотя не уверен что само железо рабочее). В принципе не работает уже в начале(и надеюсь только в начале) и для исправления этой ошибки схема не нужна но все же выложу(так же буду благодарен если согласитесь поискать еще ошибок, тогда в личку напишу что там вообще происходит). [url][URL=http://radikal.ru/F/i036.radikal.ru/1206/6e/a885a87c9935.jpg.html]Изображение[/url][/url]


Вложения:
Комментарий к файлу: Небольшие примечание(нужны только тем кто решился разобраться во всем коде)
примечания.txt [164 байт]
Скачиваний: 341
Комментарий к файлу: собственно код
16F628ATEMP.ASM [9.25 KiB]
Скачиваний: 404
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Чт июн 14, 2012 22:22:06 
Мудрый кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 5
Зарегистрирован: Ср янв 23, 2008 22:11:54
Сообщений: 1867
Откуда: Калининград
Рейтинг сообщения: 0
Algor писал(а):
проверял несколько раз такой регистр есть.

Где он есть? В МК?
В подключаемом файле (p16F628A.inc) видимо нет.

По первому слову тожо, там же написано в комментах, что эти директивы должны быть в инклюдах.
Какой-то файл вы не подключили, в котором описаны эти директивы, вот он и ругается.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Чт июн 14, 2012 22:35:43 
Встал на лапы

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср фев 01, 2012 10:55:53
Сообщений: 145
Рейтинг сообщения: 0
У PIC16F628A нет регистра ANSEL. А чтобы использовать все выводы как цифровые - надо отключить компараторы. В даташите есть пример:
Код:
CLRF       PORTA        ;Initialize PORTA by setting output data latches
MOVLW      0x07         ;Turn comparators off and
MOVWF      CMCON        ;enable pins for I/O functions
BCF        STATUS, RP1
BSF        STATUS, RP0  ;Select Bank1
MOVLW      0x1F         ;Value used to initialize data direction
MOVWF      TRISA        ;Set RA<4:0> as inputs
                        ;TRISA<5> always
                        ;read as ‘1’.
                        ;TRISA<7:6>
                        ;depend on oscillator
                        ;mode


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Чт июн 14, 2012 23:23:46 
Первый раз сказал Мяу!

Зарегистрирован: Сб июн 09, 2012 23:09:42
Сообщений: 35
Рейтинг сообщения: 0
Спасибо большое отключу компараторы, позволит ли это использовать PORTA, 4 как цифровой выход(просто знаю что там свои тонкости он же подключен к таймеру счетчику), а насчет того что не все файлы подключил можно ли поподробнее. Их же всего 2 надо 16F628ATEMP.ASM и P16F628A.INC я их скинул в папку с проектом, что еще надо?
И насколько я понял из
Код:
TRISA<5> always
                        ;read as ‘1’.
                        ;TRISA<7:6>

порт А 5 всегда настроен на вход и настроить его на выход возможности нет?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Чт июн 14, 2012 23:49:24 
Встал на лапы

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср фев 01, 2012 10:55:53
Сообщений: 145
Рейтинг сообщения: 0
Файл p16f628a.inc не нужно копировать в папку проекта, в свойствах проекта должны быть указаны пути где искать инклуды.
Константа DATA_CP_OFF пишется без подчеркивания вначале.
У PIC12 и PIC16 вывод на котором MCLR всегда работает только как цифровой вход.
Вывод RA4 с открытым стоком, его надо подтянуть резистором на Vdd.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Пт июн 15, 2012 00:33:24 
Первый раз сказал Мяу!

Зарегистрирован: Сб июн 09, 2012 23:09:42
Сообщений: 35
Рейтинг сообщения: 0
Зачем присоединять RA4 через резистор к питанию, резистор должен быть на сколько, 1КОм? И как его тогда вообще можно использовать?


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Пт июн 15, 2012 08:24:08 
Встал на лапы

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср фев 01, 2012 10:55:53
Сообщений: 145
Рейтинг сообщения: 0
Если регистры серии 74HC, резистор на RA4 может быть 10кОм или еще больше.
Не лучше ли будет соединить регистры последовательно (вывод DS(14) первой микросхемы вход, а далее Q7S(9) с DS следующей, SHCP(11) параллельно) и для обновления дисплея просто ввести новые данные для всех сегментов всех разрядов. С использованием 74HC595 динамическая индикация не нужна, их выходы сохраняют состояние до следующего импульса на выводе STCP (12). Выводы OE (13) можно посадить на Vss.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Пт июн 15, 2012 10:25:21 
Первый раз сказал Мяу!

Зарегистрирован: Сб июн 09, 2012 23:09:42
Сообщений: 35
Рейтинг сообщения: 0
Немного не понятно как будет работать RA4 через резистор присоединенный к питанию, а в остальном мысль конечно интересная но оставлю уже как есть, тем более что динамическую подсветку не использую, а ОЕ довольно часто. Обновил принципиальную схему, вроде все косяки убрал. И еще насколько легко 74НС убить статикой(просто может от этого ничего не пашет)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Пт июн 15, 2012 10:30:28 
Первый раз сказал Мяу!

Зарегистрирован: Сб июн 09, 2012 23:09:42
Сообщений: 35
Рейтинг сообщения: 0
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Пт июн 15, 2012 12:21:17 
Встал на лапы

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср фев 01, 2012 10:55:53
Сообщений: 145
Рейтинг сообщения: 0
В предыдущем варианте RA4 был использован как разрешение четвертого индикатора, тогда резистор был нужен чтобы задать высокий уровень на этом выводе.
В новом варианте RA4 не использован, значит и резистор не нужен.
Что касается 74HCxxx, просто так их не убить, нужен серьезный разряд.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Пт июн 15, 2012 16:40:37 
Первый раз сказал Мяу!

Зарегистрирован: Сб июн 09, 2012 23:09:42
Сообщений: 35
Рейтинг сообщения: 0
Исправил код в соответствии с исправленной принципиальной схемой, и еще парочка доработок из тех что вы все мне посоветовали(спасибо всем большое), код теперь компилится но в протеусе МК по прежнему не подает признаков жизни(на железе протестирую ближе к вечеру, но почему то уверен что результат будет тот же). Помогите пожалуйста найти ошибку.


Вложения:
16F628ATEMP.ASM [9.34 KiB]
Скачиваний: 706
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Пт июн 15, 2012 16:59:33 
Первый раз сказал Мяу!

Зарегистрирован: Сб июн 09, 2012 23:09:42
Сообщений: 35
Рейтинг сообщения: 0
Код без коментов, так что спрашивайте. Хотя он такой примитивный что и так понятно вроде.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Пт июн 15, 2012 18:49:14 
Первый раз сказал Мяу!

Зарегистрирован: Сб июн 09, 2012 23:09:42
Сообщений: 35
Рейтинг сообщения: 0
В отладчике пытаюсь посмотреть как работает код, команды bsf не устанавливает нужный мне бит.(((
В смысле порт настроен правильно, выполняется BSF PORTA,1 а в меню View->Watch в этих регистрах по прежнему нули!!(
Я уже в отчаянье подскажите в чем может быть проблема??(использую отладчик MPLAB SIM)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Пт июн 15, 2012 19:17:35 
Встал на лапы

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср фев 01, 2012 10:55:53
Сообщений: 145
Рейтинг сообщения: 0
В самом начале кода (стр.89)
Код:
   MOVLW   0x1F         ;Value used to initialize data direction
   MOVWF   TRISA

В этом случае PORTA,1 будет входом. Microchip как то посоветовал как запомнить назначение битов направления 0 - похож на O(output), 1 - I(input).
И еще, PORTA и TRISA находятся в разных банках, поэтому надо сначала выставить нужный банк, а потом модифицировать значения. Кстати это относится и к другим регистрам. Надо аккуратнее работать с банками. Есть псевдокомманда ассемблера BANKSEL, например
Код:
        BANKSEL PORTA
        CLRF    PORTA
        BANKSEL TRISA
        CLRF TRISA

Все выводы PORTA на выход и у всех низкий уровень.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Пт июн 15, 2012 20:30:58 
Первый раз сказал Мяу!

Зарегистрирован: Сб июн 09, 2012 23:09:42
Сообщений: 35
Рейтинг сообщения: 0
Огромное спасибо!!! И еще такой вопрос как избежать подобных ошибок при работе с константами(или это не актуально?)?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Сб июн 16, 2012 09:15:18 
Встал на лапы

Карма: 1
Рейтинг сообщений: 39
Зарегистрирован: Ср фев 01, 2012 10:55:53
Сообщений: 145
Рейтинг сообщения: 0
ОЗУ поделено на банки потому что в коде команды на адрес выделено 7 бит, остальные биты адреса это RP1 и RP0 регистре STATUS.
По той же причине (11 бит адреса в коде команды) прямые переходы и вызовы подпрограмм возможны в пределах страниц размером 2K. Чтобы перейти по адресу за пределами страницы, надо недостающие биты записать в PCLATH.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Сб июн 16, 2012 14:16:16 
Первый раз сказал Мяу!

Зарегистрирован: Сб июн 09, 2012 23:09:42
Сообщений: 35
Рейтинг сообщения: 0
Последняя проблема. Отладил код. Вроде все работает, порты настроил в veiw->watch все значения меняются. в протеусе не работает
если заземлить разрешение на запись в регистрах сдвига все работает. Прогонял пошагово
Код:
CALL   rasshifrovka1   
   BCF   PORTA,1            
   CALL   Otobrajenie

команда BCF PORTA,1 обнуляет значение второго бита(это видно в veiw->watch) в протеусе и на железе там 1.
Как такое вообще возможно?????
Выкладываю все файлы
файл протеуса 111 как раз тот где эта нога на землю и на индикаторе все отображается(по крайней мере отображается это уже хорошо)


Вложения:
sdb.rar [72.62 KiB]
Скачиваний: 274
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Сб июн 16, 2012 16:36:33 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
Цитата:
команда BCF PORTA,1 обнуляет значение второго бита(это видно в veiw->watch) в протеусе и на железе там 1.

следующая команда ставит бит
Цитата:
CALL rasshifrovka1
BCF PORTA,1
CALL Otobrajenie
BSF PORTA,1

Цитата:
zaderjka
MOVLW 0C4h
MOVWF N0
cyl1
MOVLW 0FFh
MOVWF N1
cyl2
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ N0,1
GOTO cyl2
DECFSZ N1,1
GOTO cyl1
RETURN

здесь бесконечный цикл
Подпрограмма Otobrajenie написана в лоб.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Проблема с кодом
СообщениеДобавлено: Сб июн 16, 2012 19:51:38 
Первый раз сказал Мяу!

Зарегистрирован: Сб июн 09, 2012 23:09:42
Сообщений: 35
Рейтинг сообщения: 0
Ну перед тем как устанавливается 1 вызывается подпрограмма отображения. Сегменты не подсвечиваются из чего я сделал выдод что RA1 не сбрасывается(ведь если заземлить разрешение то все в порядке). А код примитивный потому что писал еще в начале сема пока еще не сильно освоился с ассемблером и пиками вообще(да и щас еще печально как видите), так что каюсь но переписать времени нет.(хотя экзамен уже сдал так что наверно все же перепишу все как надо). А ошибки у меня в слове конфигурации, оттого и не пашет ничего, так что пока тему можно закрывать. Еще раз всем спасибо.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 19 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y