Например TDA7294

Форум РадиоКот • Просмотр темы - "Hello world!" на pic16f877a
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 19:19:25

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


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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: "Hello world!" на pic16f877a
СообщениеДобавлено: Вс дек 04, 2016 11:09:37 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Вт ноя 07, 2006 00:09:58
Сообщений: 198
Откуда: Москва
Рейтинг сообщения: 0
Всем привет!
Я AVRшик, а PICи видел только припаянные к плате, но жизнь заставила разобраться с устройством на PIC контроллере. Дали мне HEX файл и все. Я его деассемблировал и начал изучать. Естественно ASM AVR отличается от ASM PIC. Отсюда встал вопрос изучения этого дела. Поставил MPLAB X, купил для мучений PIC16F877A, собрал схему на макетке в виде МК + кварц на 8МГц с двумя капаситорами на 22р от кварца на GND и светодиод от RC3 через резюк на GND. Программатор PicKit3. Ну вроде бы как все должно быть комильфо, но...
Накидал такой код.
Код:
    LIST p=16F877A
    __CONFIG 3FF1H
   
    ERRORLEVEL -302
   
STATUS   equ  03h
TRISC    equ  87h
PORTC    equ  07h
RP0    equ  5
PC3    equ  3
   
    org 0
   
    clrf STATUS
   
    bsf STATUS,RP0
    bcf TRISC,PC3

    bcf STATUS,RP0
    bsf PORTC,PC3
   
    end

Все скомпилилось без ошибок, но светодиод не горит, а на RC3 сидит 0,53в как на всех остальных ногах. Как я понял из 0 в 1 я так и не перешел.
Вопрос. В чем может быть проблема? Смущает регистр STATUS. Когда я сбрасываю третий разряд в регистре TRISC для перевода пина на выход, мне нужно перейти в банк1. Собственно в регистре STATUS я это и делаю выставляя RP0 в единицу, а вот когда мне нужно перебраться в банк 0... Регистр STATUS присутствует во всех банках но имеет разный адрес 0x0003, 0x0083, 0x0103, 0x0183. Здесь и сомнения, он сквозной для всех банков или нужно при переходе из одного банка в другой задавать изменения в текущем банке. Я уже запутался. Как мне зажечь светодиод, я уже не говорю о мигании.

_________________
Я не волшебник, я только лечусь


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "Hello world!" на pic16f877a
СообщениеДобавлено: Вс дек 04, 2016 11:59:03 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Во-первых, на ресет надо повесить подтяжку. Оригинальный ДШ на стр. 148.
Во-вторых, не надо расписывать адреса регистров. Нужно только в начале исходника написать include p16f877a.inc
В-третьих, чтобы не мучиться с комбинациями битов для выбора банка, можно писать, скажем,
Код:
  banksel TRISC
  bcf TRISC,3

Препроцессор потом заменит banksel на нужную комбинацию битов в регистре STATUS, который, как вы верно заметили, "сквозной" во всех банках. А можно и свои макросы использовать, типа таких:
Спойлер
Код:
bank0   macro
   bcf STATUS,IRP
   bcf STATUS,RP1
   bcf STATUS,RP0
   endm

bank1   macro
   bcf STATUS,IRP
   bcf STATUS,RP1
   bsf STATUS,RP0
   endm
   
bank2   macro
   bsf STATUS,IRP
   bsf STATUS,RP1
   bcf STATUS,RP0
   endm
   
bank3   macro
   bsf STATUS,IRP
   bsf STATUS,RP1
   bsf STATUS,RP0
   endm

Чтобы засветить светодиод, напишите
Код:
  banksel PORTC
  bsf PORTC,3


А вообще желательно инициалищировать всю периферию, она может влиять (и влияет) на работу портов. В случае RC3 вроде ничего нет, но для проверять нужно. В конце каждого раздела в мануалах написано, какие регистры и биты в них играют роль в данном разделе (SUMMARY OF REGISTERS ASSOCIATED WITH xxx).

Добавлено after 6 minutes 54 seconds:
Забыл еще один момент: конфиг-биты пишите в таком виде:
Код:
 __CONFIG _HS_OSC & _WDT_OFF & _PWRTE_OFF & _CP_OFF & _BODEN_OFF & _LVP_OFF & _CPD_OFF & _WRT_ENABLE_OFF & _DEBUG_OFF

Их список в том же inc файле, но средствами МПлаба можно это автоматизировать. Для этого в меню выбираете Window - PIC memory views - Configuration Bits. В нем выставляете нужное, потом жмете Generate Sorce Code, копируете и вставляете в исходник.

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "Hello world!" на pic16f877a
СообщениеДобавлено: Вс дек 04, 2016 12:17:09 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Вт ноя 07, 2006 00:09:58
Сообщений: 198
Откуда: Москва
Рейтинг сообщения: 0
Цитата:
include p16f877a.inc

Уже пробовал, пишет что такой файл не найден. Поэтому расписывал все вручную.
У меня по ходу что-то в железе, а что не могу понять. В протеусе работает, а на железе нет, хотя MPLAB пишет что все залил и верификация прошла удачно.
Цитата:
Оригинальный ДШ на стр. 148.

Хотят резистор не более 40К, поставил на 20К. Теперь MPLAB перестала видеть МК.

_________________
Я не волшебник, я только лечусь


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: "Hello world!" на pic16f877a
СообщениеДобавлено: Вс дек 04, 2016 12:38:08 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7854
Рейтинг сообщения: 0
#include
10k прямо на MCLR


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: "Hello world!" на pic16f877a
СообщениеДобавлено: Вс дек 04, 2016 13:08:57 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Вт ноя 07, 2006 00:09:58
Сообщений: 198
Откуда: Москва
Рейтинг сообщения: 0
Цитата:
#include

Ну не дурак. Чай AVR рограммирую, там та же песня. :))
Цитата:
Window - PIC memory views - Configuration Bits

Вот это тема. Он сам мне все сделал.
Цитата:
10k прямо на MCLR

Не помогает. Причем если отсоединяю программатор и запитываю от внешнего источника, то светодиод промаргивает один раз.

Добавлено after 22 minutes 51 second:
Все, разобрался. В конфигурационном регистре нужно вместо _FOSC_XT поставить _FOSC_HS, тем самым разрешить работу быстрых кварцев. Очень напоминает фьюз биты в Мегах)))

_________________
Я не волшебник, я только лечусь


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: "Hello world!" на pic16f877a
СообщениеДобавлено: Вс дек 04, 2016 13:16:14 
Сверлит текстолит когтями
Аватар пользователя

Карма: 25
Рейтинг сообщений: 168
Зарегистрирован: Ср янв 29, 2014 08:41:31
Сообщений: 1231
Откуда: Баку
Рейтинг сообщения: 0
Gurvinok писал(а):
Цитата:
include p16f877a.inc

Уже пробовал, пишет что такой файл не найден.

Как же так? Я именно так и писал всегда,все видит.
Он здесь сидит : C:\Program Files (x86)\Microchip\MPLABX\v3.40\mpasmx

Проект целым архивом можно увидеть?

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: "Hello world!" на pic16f877a
СообщениеДобавлено: Вс дек 04, 2016 13:39:34 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: 14
Зарегистрирован: Вт ноя 07, 2006 00:09:58
Сообщений: 198
Откуда: Москва
Рейтинг сообщения: 0
Вот весь код.
Код:
    LIST p=16F877A
   
    #include "p16F877A.inc"

    __CONFIG _FOSC_HS & _WDTE_OFF & _PWRTE_ON & _BOREN_ON & _LVP_ON & _CPD_OFF & _WRT_OFF & _CP_OFF
   
    ERRORLEVEL -302
   
    RP0    equ  5
    PC3    equ  3
   
    org 0
   
    clrf STATUS
   
    bsf STATUS,RP0
    bcf TRISC,PC3

    bcf STATUS,RP0
    bsf PORTC,PC3
   
    end


Это я дурак. По не внимательности создал проект не под 16F877A, а под 16LF877A. Вот он и не видел.

_________________
Я не волшебник, я только лечусь


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

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


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

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


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

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


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