Например TDA7294

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

Текущее время: Пн фев 23, 2026 21:45:51

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


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



Начать новую тему Ответить на тему  [ Сообщений: 27 ]  1,  
Автор Сообщение
 Заголовок сообщения: Помогите в освоении PIC
СообщениеДобавлено: Сб авг 20, 2016 22:01:17 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб мар 29, 2008 21:42:45
Сообщений: 39
Рейтинг сообщения: 0
Здравствуйте! Ребята, решил осваивать PIC посмотрел видеоуроки и решил на PIC16F628A(пока только он в наличии) смоделировать в MPLAB схему: через одну сек. после подачи питания на всех выводах PORTB должны загореться светодиоды, а через 5сек. погаснуть. Проверяю в PROTEUSе. Вобщем всё работает, только светики через1сек. включаются и через 5сек. выключаются и так без останова. Весь вечер сижу и ничего не понимаю. Где я накосячил?


Вложения:
рис1.png [47.91 KiB]
Скачиваний: 563
Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении
СообщениеДобавлено: Сб авг 20, 2016 22:02:51 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб мар 29, 2008 21:42:45
Сообщений: 39
Рейтинг сообщения: 0
Задержки времени считал в "PIC_Delay"
Вот что пишет PROTEUS в окне сообщений:


Вложения:
рис2.png [33.73 KiB]
Скачиваний: 577
Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении
СообщениеДобавлено: Сб авг 20, 2016 22:18:02 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Листинги нужно выкладывать в текстовом виде. И к тому же в тегах Code.

Протеус ругается на переполнение стека.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении
СообщениеДобавлено: Сб авг 20, 2016 22:25:22 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Seryi, после последнего NOP-а программа не останавливается.
END означает что после этого нет текста программы.
В предварительно стёртом контроллере, далее во флеше данные 0xFF, которые соответствуют команде addlw 0xFF.
После последнего адреса, счётчик команд сбрасывается в 0 и продолжается выполнение с первой команды.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: Помогите в освоении
СообщениеДобавлено: Сб авг 20, 2016 22:30:57 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
По поводу программы.
1.Конфиг следует писать в виде "слов", как указано в соответствующем inc файле. Так легче понимать и переносить на другие камни.
Например так:
Код:
__CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _BOREN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF

2. Вместо описания системных регистров через equ (у Карабельникова вычитали?) достаточно вначале вписать "include p16f628a.inc".
3. Задержки delay и delay2 - обычно используются как подпрограммы, а к ним нужно обращаться через call (а не goto). Выходить из них через return ( а не goto). Ваш вариант рабочий, если учтете пункт 4. Кстати, Picloops - поинтереснее будет. Она обратно тоже считать может. Бывает полезно при разборе чужого кода.
4. Программа не может заканчиваться. Она должна постоянно работать, хотя бы впустую, если действия должны производиться однократно. Например посредством goto $.

Исправляйте.

P.S. Для данного МК банки переключаются одним битом. Вы делаете двумя. Это не ошибка, но лишнее действие.
Есть и другой вариант, но это потом.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении
СообщениеДобавлено: Вс авг 21, 2016 17:44:18 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб мар 29, 2008 21:42:45
Сообщений: 39
Рейтинг сообщения: 0
Всех благодарю за чуткое отношение к новичку. Карабельникова я не читал. Просмотрел первые 10 видеоуроков ЗДЕСЬ и делал всё по аналогии.
Сначала я задал свой вопрос на "Easyelectronics.ru" в "Детских вопросах", но ответы которые я там получил могут навсегда отбить охоту заниматься МК. Об авторе видеоуроков там отзываются крайне негативно. Вопрос специалистам по МК которые их смотрели: "Скажите стоит ли ими руководствоваться при освоении МК? "


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Вс авг 21, 2016 18:32:06 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Закончил просмотр урока на фразе "это черный параллелепипед, длина которого..." ))
Может быть дальше будет еще интереснее, но я этого не узнаю. Поэтому по этим урокам ничего посоветовать не могу.

Можете начать, как это делал я. Мне попалась в руки очень интересная и очень нужная мне конструкция, которая к тому же имела исходники. После сборки ее захотелось расширить функционал. Распечатал таблицу команд и начал разбираться, что они делают. Вот так и учился. И учусь до сих пор, т.к. это для меня развлечение, а не род занятий.

Но вы не написали, исправили вы что-нибудь или нет.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Вс авг 21, 2016 19:42:55 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб мар 29, 2008 21:42:45
Сообщений: 39
Рейтинг сообщения: 0
Сделал, текстовый файл прилагаю. В PROTEUSе работает. Только на выводе RB4 светодиод вообще не включается.


Вложения:
PROBA.txt [2.71 KiB]
Скачиваний: 219
Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Вс авг 21, 2016 20:04:25 
Встал на лапы
Аватар пользователя

Карма: 9
Рейтинг сообщений: 17
Зарегистрирован: Вс ноя 01, 2015 00:09:59
Сообщений: 83
Рейтинг сообщения: 0
Ох и накрутили вы в коде :write:
Вот вам небольшой пример :) https://youtu.be/09dLyMxjbTE

_________________
Для связи email: risctronix собака gmail.com


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Вс авг 21, 2016 20:25:50 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб мар 29, 2008 21:42:45
Сообщений: 39
Рейтинг сообщения: 0
Спасибо! Сейчас скачаю все уроки и буду вникать.


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Вс авг 21, 2016 20:28:55 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Seryi, Привыкайте, до старта программы, делать INIT всей периферии контроллера (включая то, что в данный не используете).
Так вы быстрее узнаете "внутренности" контроллера.
К тому же, не всегда стОит доверять значениям регистров POR (при подаче питания).


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Вс авг 21, 2016 20:46:44 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Seryi писал(а):
Сделал, текстовый файл прилагаю. В PROTEUSе работает. Только на выводе RB4 светодиод вообще не включается.

А вы не в Протеусе, а мысленно пройдитесь.

Подправил слегка, но так и не понял, как подключены светодиоды, включаются они нулем или единицей.
И с конфигом непонятки. Расписал его так, как нужно писать, чтобы видно было что включено/выключено, т.к. 03FF1H ни о чем не говорит.
Для чего нужны два куска в конце тоже непонятно.

И как уже советовали, лишнюю периферию отключите, ее в этом МК всего ничего.

Спойлер
Код:
  LIST   p=16F628A
  include p16f628a.inc
;  __CONFIG    03FF1H  ; 0b0011 1111 1111 0001
  __CONFIG _INTOSC_OSC_CLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BOREN_ON & _LVP_ON & _DATA_CP_OFF & _CP_OFF

    Reg_1           equ         21h
    Reg_2           equ         22h
    Reg_3           equ         23h
   
    org 0
   
;      bsf         STATUS,5        ;perehodim
;      bcf         STATUS,6        ;v bank1
      bsf         STATUS,RP0
      clrf        TRISB
;      bcf         STATUS,5        ;perehodim
;      bcf         STATUS,6        ;v bank0
      bcf         STATUS,RP0
      movlw       b'00000000'     ;stavim
      movwf       PORTB           ;nizkiy uroven
      call        delay
      movlw       b'11111111'     ;stavim
      movwf       PORTB           ;vysokiy uroven
      call        delay2
;      goto        Start
      goto      $                ; здесь программа зациклится навсегда
delay
      movlw       .173
      movwf       Reg_1
      movlw       .19
      movwf       Reg_2
      movlw       .6
      movwf       Reg_3
      decfsz      Reg_1,F
      goto        $-1
      decfsz      Reg_2,F
      goto        $-3
      decfsz      Reg_3,F
      goto        $-5
      nop
      nop
      return
delay2
      movlw       .190
      movwf       Reg_1
      movlw       .75
      movwf       Reg_2
      movlw       .21
      movwf       Reg_3
      decfsz      Reg_1,F
      goto        $-1
      decfsz      Reg_2,F
      goto        $-3
      decfsz      Reg_3,F
      goto        $-5
      nop
      return

;Start         
;      bsf         STATUS,5        ;perehodim
;      bcf         STATUS,6        ;v bank1
;Start2         
;      clrf        TRISB
;      bcf         STATUS,5        ;perehodim
;      bcf         STATUS,6        ;v bank0
;      movlw       b'00000000'     ;stavim
;      movwf       PORTB
;      goto        Start2
;      end


P.S. И не пишите в комментах "ставим низкий/высокий уровень". Это и так очевидно. Нужно писать, что этот уровень делает.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Вс авг 21, 2016 21:50:08 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб мар 29, 2008 21:42:45
Сообщений: 39
Рейтинг сообщения: 0
Два куска в конце я написал чтобы выключить светодиоды. Мне нужно чтобы через 1сек. после включения они загорелись и через 4сек. погасли. Мне не нужно чтобы они мигали.
Пробовал вместо "__CONFIG 03FF1H" поставить "__CONFIG __CONFIG _INTOSC_OSC_CLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BOREN_ON & _LVP_ON & _DATA_CP_OFF & _CP_OFF"
Компиляция не проходит -ошибки.


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Вс авг 21, 2016 22:11:38 
Друг Кота
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1859
Зарегистрирован: Чт сен 12, 2013 00:54:12
Сообщений: 4119
Откуда: ЗаМКАДье. Там, где ЦУП
Рейтинг сообщения: 0
Медали: 5
Получил миской по аватаре (5)
Синтаксис:
Код:
 __CONFIG _INTOSC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON &  _MCLRE_OFF & _BOREN_ON & _LVP_OFF & _CPD_OFF & _CP_OFF
/у вас лишнее слово __CONFIG/


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Вс авг 21, 2016 22:48:09 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4609
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Seryi писал(а):
"__CONFIG __CONFIG _INTOSC_OSC_CLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BOREN_ON & _LVP_ON & _DATA_CP_OFF & _CP_OFF"
А Вы не заметили тут ничего странного ? :)

Вы бы хоть проверяли что пишите, проходясь по тексту глазами.

PS: Опоздал. Альберт уже поправил свой пост, дописав Вашу ошибку :)


Последний раз редактировалось Аlex Вс авг 21, 2016 22:52:04, всего редактировалось 1 раз.
-


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Пн авг 22, 2016 08:34:39 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб мар 29, 2008 21:42:45
Сообщений: 39
Рейтинг сообщения: 0
Лишнее "__CONFIG" только в сообщении(загружал из буфера обмена и ошибся).
MPLAB пишет: "... Register in operand not in bank 0. Ensure that bank bits are correct."


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Пн авг 22, 2016 11:25:04 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Это не ошибка, а напоминание, чтобы вы убедились, что переключились в нужный банк.
Эти сообщения можно отключить, но вам они пока нужны.

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Пн авг 22, 2016 18:45:48 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб мар 29, 2008 21:42:45
Сообщений: 39
Рейтинг сообщения: 0
Вы не поняли. "__CONFIG" я написал 2 раза, общаясь с вами, на форуме. Когда я вставил в программу, то что мне рекомендовали выше
Код:
 __CONFIG _INTOSC_OSC_CLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BOREN_ON & _LVP_ON & _DATA_CP_OFF & _CP_OFF
, PROTEUS не откомпилировал.
А когда я вставил в программу
Код:
__CONFIG _CP_OFF & _CPD_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC & _LVP_OFF & _BODEN_OFF & _MCLRE_ON
, всё прошло успешно.


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Пн авг 22, 2016 19:08:07 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Мое предыдущее сообщение относилось к этому:
Цитата:
MPLAB пишет: "... Register in operand not in bank 0. Ensure that bank bits are correct."


Что касается ругательства Протеуса... Он не знает некоторые конфигурационные слова, например BODEN / BOREN и пр. Поэтому надо смотреть на что он ругается и менять на альтернативу из inc файла. Это Протеус такой капризный.

Вы в курсе, что означает _HS_OSC, который вы скормили ему?

_________________
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.


Вернуться наверх
 
 Заголовок сообщения: Re: Помогите в освоении PIC
СообщениеДобавлено: Пн авг 22, 2016 19:25:55 
Первый раз сказал Мяу!
Аватар пользователя

Зарегистрирован: Сб мар 29, 2008 21:42:45
Сообщений: 39
Рейтинг сообщения: 0
Я опять напутал. Ругается не PROTEUS. Ругается MPLAB v. 2.35 Не принимает "_DATD_CP_OFF". Заменил на"_CPD_OFF" и всё заработало.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 27 ]  1,  

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


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

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


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