Jump to content

Recommended Posts

Добрый день.
Прошу помоши. Упорно не хочет читать единицу RB0. МК - PIC16F886. Для моделирования использую MPLABX+Proteus 8.4, язык ХС8 v1.33.

 

#include <xc.h>
/*#include "I2Cmay.h"
#include "LCD.h"
#include "Monitor.h"
#include "main.h"*/
#define _XTAL_FREQ (8000000)
#include <stdio.h>
#include <stdlib.h>

// CONFIG1
#pragma config FOSC = EXTRC_CLKOUT// Oscillator Selection bits (RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN)
#pragma config WDTE = OFF       // Watchdog Timer Enable bit (WDT disabled and can be enabled by SWDTEN bit of the WDTCON register)
#pragma config PWRTE = OFF      // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF      // RE3/MCLR pin function select bit (RE3/MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = OFF         // Code Protection bit (Program memory code protection is disabled)
#pragma config CPD = OFF        // Data Code Protection bit (Data memory code protection is disabled)
#pragma config BOREN = OFF      // Brown Out Reset Selection bits (BOR disabled)
#pragma config IESO = OFF       // Internal External Switchover bit (Internal/External Switchover mode is disabled)
#pragma config FCMEN = ON       // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is enabled)
#pragma config LVP = OFF        // Low Voltage Programming Enable bit (RB3 pin has digital I/O, HV on MCLR must be used for programming)

// CONFIG2
#pragma config BOR4V = BOR40V   // Brown-out Reset Selection bit (Brown-out Reset set to 4.0V)
#pragma config WRT = OFF        // Flash Program Memory Self Write Enable bits (Write protection off)

void main(void) {
    unsigned int temp;
    //nastroyka ();
    TRISB=0b00000001;
    while(1){
        if (RB0==0){
            RB1=1;
            RB1=0;
        }
         NOP();
    }
}

Внешнея подтяжка к 5В, однако постоянно заходит на строки в условии. Состояние регистров ANSELH=0, CCP1CON=0, CM2CON1=2, IOCB=0, INTCON=1, TRISB=1. В чем проблема не понимаю, грешил на протеус, переустановил с 8.1 на 8.4 - не помогло.
Чего я не так делаю?

 

Share this post


Link to post
Share on other sites

ANSEL=0. Но только в даташите, не сказано что данный регистр влияет на работу порта В.

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

Posted (edited)
10 минут назад, Bugrim сказал:

ANSEL=0. Но только в даташите, не сказано что данный регистр влияет на работу порта В.

Кроме ANSEL есть ANSELH, в котором есть бит ANS12, вот он и управляет аналоговой функцией RB0/AN12.

Для вывода в RB0 достаточно сбросить в ноль оный бит и сбросить в ноль нулевой бит регистра TRISB.

Edited by my504

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

Posted (edited)

Я не обратил внимания на потребность в чтении. 

А чем гарантируется высокий уровень на RB0?

Edited by my504

Share this post


Link to post
Share on other sites
Posted (edited)

Внешний подтягивающий резистор.

5c8b83786f3f6_.thumb.jpg.e5c3ed003ca5cb2895f589aa78935242.jpg

Edited by Bugrim

Share this post


Link to post
Share on other sites

Может все таки протеус глючит? Подскажите стабильную версию.

Share this post


Link to post
Share on other sites

Самая стабильная версия - это железо !
Что мешает проверить на реальном проце ?

Share this post


Link to post
Share on other sites

Проверит на самой стабильной версии - работает. Теперь стабильный протеус найти надо.

Share this post


Link to post
Share on other sites
Posted (edited)

Подскажите,а для чего помимо простого приоритета прерываний в количестве 8,еще и есть субприоритет прерываний в количестве 4?(Я конкретно указывал количество для pic32MX,там еще около 100 источников прерываний оказывается) Просто для более удобного разделения приоритетов или есть тайный смысл?

Edited by BiBOX

Share this post


Link to post
Share on other sites
В 17.03.2019 в 19:41, Bugrim сказал:

Проверит на самой стабильной версии - работает. Теперь стабильный протеус найти надо.

Не припомню что бы хоть какой нибудь протес симулировал с ошибкой или глючил для пик 12 16 18 было когда я усомнился но в итоги нашёл ошибку в коде

Share this post


Link to post
Share on other sites

То же по началу было плохое мнение о протеусе, но как всегда виновником оказался человеческий фактор и кривой код.

Share this post


Link to post
Share on other sites

привет. нужна помощь. в микропрограмах не понимаю нужно кориктировать и компилировать нашол инструкцию но ничего не получается.

делал по инструкции с сайта https://www.dropbox.com/s/h4g0k06w3kidu7c/Допомога новачкам або швидкий старт з MPLAB IDE.pdf?dl=0  не хочет компилироватся

---------------------------------------------------------------------- Debug build of project `C:\pic\spidometr\spid.mcp' started. Language tool versions: MPASMWIN.exe v5.30.01, mplink.exe v4.30.01, mplib.exe v4.49 Preprocessor symbol `__DEBUG' is defined. Mon Apr 15 18:27:00 2019 ---------------------------------------------------------------------- Очистка: Удаляю промежуточные и выходные файлы. Очистка: удалён файл "C:\pic\spidometr\spid.o". Очистка: удалён файл "C:\pic\spidometr\spid.err". Очистка: удалён файл "C:\pic\spidometr\spid.lst". Очистка: удалён файл "C:\pic\spidometr\spid.cof". Очистка: удалён файл "C:\pic\spidometr\spid.hex". Очистка: удалён файл "C:\pic\spidometr\spid.mcs". Очистка: готово. Executing: "C:\Program Files\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F873A "spid.asm" /l"spid.lst" /e"spid.err" /o"spid.o" /d__DEBUG=1 /c- Warning[207] C:\PIC\SPIDOMETR\SPID.ASM 166 : Found label after column 1. (SEG7) Message[302] C:\PIC\SPIDOMETR\SPID.ASM 282 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 286 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 290 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 294 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 300 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 304 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 308 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1066 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1070 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1072 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1076 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1120 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1128 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1132 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1134 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1138 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1142 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1144 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1146 : Register in operand not in bank 0.  Ensure that bank bits are correct. Message[302] C:\PIC\SPIDOMETR\SPID.ASM 1150 : Register in operand not in bank 0.  Ensure that bank bits are correct. Error[113]   C:\PIC\SPIDOMETR\SPID.ASM 1232 : Symbol not previously defined (CHATOD) Halting build on first failure as requested. ---------------------------------------------------------------------- Debug build of project `C:\pic\spidometr\spid.mcp' failed. Language tool versions: MPASMWIN.exe v5.30.01, mplink.exe v4.30.01, mplib.exe v4.49 Preprocessor symbol `__DEBUG' is defined. Mon Apr 15 18:27:01 2019 ---------------------------------------------------------------------- BUILD FAILED

исходник во вложении кто поможет за небольшое вознаграждение

Исходник программы для спидометра-одометра.txt

Share this post


Link to post
Share on other sites

перед конфигом поставьте

Цитата

    errorlevel  -302              ; suppress message 302 from list file

и строка 1232 пытается вызвать несуществующую процедуру Chanod , есть ChAnod

Share this post


Link to post
Share on other sites

Здравствуйте.

Притащили посмотреть две платы управления.

На плате стоит 12F508. На его входе датчик вибрации, на выходе оптрон. Горелого ничего нет. Питание исправно.

Программатором PIC читается, содержимое на обеих платах одинаковое.

МК стоят в соккетах, третья нога каждого зачем-то отогнута.

Вопрос к опытным: существует ли дизассемлер к этому PIC, и если да, то какой попроще? Программа в МК маленькая, хотелось бы понять алгоритм.

 

 

 

 

Share this post


Link to post
Share on other sites

Может быть залочен? 

3 часа назад, ART_ME сказал:

содержимое на обеих платах одинаковое.

В студию оба.  

Share this post


Link to post
Share on other sites
4 часа назад, ART_ME сказал:

существует ли дизассемлер к этому PIC, и если да, то какой попроще?

Дизассемблер он и в Африке дизасемблер :) проще ассемблера ничего не бывает, ну если только перфокарты :) !

Да он наверно в единственном экземпляре, в ПИКовской среде разработки надо искать, если по аналогии с АВР-ми рассуждать попробуйте в их среде найти возможность запустить в симуляторе считанный файл hex, elf, ... какой там он у вас.

Share this post


Link to post
Share on other sites

считывай с расширением .HEX, инече в дизасме ничего не увидишь.

 

Share this post


Link to post
Share on other sites

Программатором нельзя скачать HEX, только бинарник.

Но я скачал конвертер, и получил приложенный файл.

Дизассемблер PIC поймет его? Спрашиваю потому, что HEX бывает разный (в отличие от BIN).

 

12F508-1.HEX

Share this post


Link to post
Share on other sites

это не хекс.... код генерируемый дисасмом не рабочий

56 минут назад, ART_ME сказал:

Программатором нельзя скачать HEX

а шо это за прогер для пыков не поддерживавший хекс????

Share this post


Link to post
Share on other sites
8 минут назад, IMXO сказал:

а шо это за прогер для пыков не поддерживавший хекс????

Это не прогер для пыков, это просто прогер. Который считывает и записывает бинарные файлы, в т.ч. и для некоторых пыков. 

Короче, качаю MPLAB.

 

Share this post


Link to post
Share on other sites

а смысл? как мне помнится мплаб тоже бантики не поддерживает.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Максим123456789
      делаю диплом, в схеме у меня микроконтроллер PIC16F688 и мне нужно его заменить на ATmega. Не могу найти похожий
    • By Anton Bondarenko
      Всем привет
      Прошу не ругать, впервые подобный вопрос задаю.
      Хочу сделать прибор, который будет посылать сигнал, когда возле прибора будет проходить металлический предмет. 
      — угол отслеживания до 30° а лучше прямая линия, траектория
      — время реакции очень высокое до 100 мс
      — ширина проема в котором нужно сканировать от 10 до 20метров,
      — передача сигнала через вифи
      Может есть готовые решения, или отдельные компоненты.
      Подскажите пжл в каком направлении искать.
      Смотрел датчики движения, но главная проблема — время реакции.
      Спасибо
       
    • By denisovdenisvladimirovit
      Нуждаюсь в помощи! Задумал сделать лабораторный блок питания, регулируемый. 0 - 50... 55в, 10 - 15а постоянного тока. трансформатор с мостом + выдают где - то 54,5в. Подскажите схему стабилизированного регулятора напряжения, или подскажите по моей. В моей регулировка по первичной обмотки без стабилизации, вообще рабочая или нет. Я сам новичок, судите строго!!!

      I need help(помогите и объясните дуракУ) опечатался((( Простите...
    • By Sofia Vin
      Предлагаем проектную работу в Москве:
      Микроконтроллер STM32F103.
        
      Есть встроенный код с использованием функций библиотеки FreeRTOS, код имеет описанный протокол для связи с внешним миром.
        
      Необходимо проводить доработку кода под задачи программиста верхнего уровня и его тестирование в составе оборудования. 
      Работа в лаборатории (м.Университет) и удаленно. 
      Оплата по договоренности.
      Если Вы обладаете опытом схемотехнического проектирования и программирования микроконтроллеров, и Вас заинтересовала данная возможность, ждем Ваши отклики по контактным данным:
      8 (925) 023-60-02   Алексей
      E-mail: nassa@marathon.ru
       
  • Сообщения

    • 2 bam-buk:   А мона картинкой - для тех кто не пользуется мультисимом?
    • если решитесь брать у китайцев, то 30 руб 100% не рабочие, по 80 руб у меня работали, 90 ватт рассеивали, мощнее не нашёл БП, за 30 руб и 25 ватт не держат
    • Во первых "уважаемый" соблюдайте правила и следите за языком и пальцами.... а то и пол года не прошло как зарегились а правила уже забыли... так и в баню легко можно попасть! Во вторых везде есть своя специфика... как минимум одна из них это мое положение, отсюда и вижу временами фургончик укрчастотнадзора и других "компетентных служб" и с "своими антеннами". В своем районе я с кт913 не играюсь, а то как Вы ранее написали статью можно получить. Если раньше и игрался жучками то максимум что то слабомощное метров на 100. Ну а если где то в поле/селе/на окраине где нет особых служб то конечно без проблемм.... но опять же пока не на кого не налезешь!
    • Как-то так: Melodi103.ms14 С уважением В.
    • да - шим ругается - нужно переходить на двуполупериод - или два кондера - проверю сейчас на них - норм или нет- похоже что здесь нужно просто посчитать стоимость конденсатора и моста 
    • Простой стабилизатор с малым падением.
    • Ваши эзотерические споры с Василичем весьма увлекательны)) и не хотелось бы в них вторгаться, но тем не менее вы оба правы и неправы одновременно. Нет ни общероссийских, ни общемировых стандартов и/или регламентов по которым определяется при каких параметрах измеряется мощность (возможно в СССР и были ГОСТы, но вы бы знали как они пишутся, но ныне ничего). УМЗЧ не военный корабль). Отсюда следует, что каждый др.. дирижирует как ему нравится) Мне предел в 10% не режет слух, если это одна вторая гармоника, например. Есть микросхемы на которых пишут мощность при 20% КНИ и это многомиллиардные магнаты. И они кто угодно, но не дураки точно. Хотя в данном случае микросхему "слушать" было невозможно хД Но само собой есть какой-то разумный предел и при 50% КНИ явно мерять бред. Самое простое и понятное решение это давать график зависимости КНИ-Мощность. Во многих даташитах так и делают. Тот же самый вопрос, зачем мне 20кГц и больше, если даже у детей порог 18 кГц, а у меня так и вовсе 16 сейчас... Ну это бессмысленно т.к. трансформатор я менять в данном случае точно не буду, а колонки менять еще больший бред. Поищу конечно реостат для интереса, если получится, но как искать Ra я так и не понял. Просто тыкать эквивалент вместо транса, если транса еще нет? По вашей методике на будущее. И вроде как схема не новая и TW6SE должен подходить. Из данных условий задачи на чем остановиться? Спасибо
  • Покупай!

×
×
  • Create New...