-
Постов
235 -
Зарегистрирован
-
Посещение
Тип контента
Профили
Форумы
Блоги
Весь контент Bugrim
-
ANSELH=0, я это указывал.
- 2 886 ответов
-
- PIC
- Микроконтроллер
-
(и ещё 3 )
C тегом:
-
ANSEL=0. Но только в даташите, не сказано что данный регистр влияет на работу порта В.
- 2 886 ответов
-
- PIC
- Микроконтроллер
-
(и ещё 3 )
C тегом:
-
Добрый день. Прошу помоши. Упорно не хочет читать единицу 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 - не помогло. Чего я не так делаю?
- 2 886 ответов
-
- PIC
- Микроконтроллер
-
(и ещё 3 )
C тегом:
-
То есть устанавливать не бит а записывать порт. Тогда: //при записи единицы PORTB|=mask[kanal]; //при записи нуля PORTB&=~mask[kanal]; При таком подходе маска не нужна, необходимо канал задавать правильно (1,2,4). //при записи единицы PORTB|=kanal; //при записи нуля PORTB&=~kanal; Вроде бы просто, а не догнал. Спасибо.
-
Доброго времени суток. Использую XC8 v1.3 Есть задача общаться программно по 1wire в PIC. Для этого выделено 3 вывода (RB0, RB1, RB2). На каждом весит свой датчик. Для работы с каждым выводом будут использоваться одинаковые функции (например: void wire_vivod_byte(char data, char kanal) ). Как можно в теле функции обратиться к RB0, RB1 или RB2 в зависимости от переменной kanal. Через if (kanal==0)..., или swith (kanal)..., я реализовать могу, а вот хочется что бы переменная kanal выступала в роли смещения.
-
Уточнения: при подсоединении "-" к заземленной заготовке проскакивает искра, выходит из строя защитный диод, выбивает сетевой автомат. Это может быть из за снаберной цепи? Я полагал что выходная цепь гальванически развязана от сети и искра между заземлением и "-" никак не модет быть, а на завтра решил мегером звонить, начиная с выходного трансформатора.
-
Доброго времени суток форумчане. Наблюдается следующая неисправность: при подсоединении "-" к заготовке, которая заземлена, выходит из строя защитный диод (напряжение открытия 180В), в то время если варить изделие, которое не заземлено, то проблем не возникает. Первичная и вторичная обмотка выходного трансформатора тестером не звонится, на корпус тоже. Подскажите где может скрываться проблема.
-
точку останова убрал, а программа все равно там останавливается, приходится регулярно Resetом, который в Debug пользоваться. Протеус 8.1. Ну ничего прорвемся.
-
На глаз код выглядит по другому, точки останова (которые криво работают, по крайней мере на моей версии протеуса), просмотр/задание значений переменных и т.д. в MPLABе мне более по душе. Можно и Поэтому всего лишь "неудобств", а не проблем.
-
Доброго времени суток! Помогите, вероятно что то с настройками, при отладке в MPLABX, XC8, в Proteuse PIC16F886 не хочет воспринимать данные EEPROM, определенные в программе через процедуру __EEPROM_DATA(). При этом, из среды MPLABX, в окошке EEPROM, данные изменены, в Proteuse, данные EEPROM, все равны FF. Если запустить Proteus отдельно, то данные EEPROM отображаются корректно, т.е. записанные через __EEPROM_DATA(). Для моделирования использую COF файл. Это доставляет ряд неудобств, хотелось бы непосредственно из MPLABX полноценно отлаживать программу. За ранее спасибо.
-
Не знаю, протеус или что то не так настраивал, но задействовал CCP1 вместо CCP2 и моделируется все нормально. Всем спасибо.
-
Доброго времени суток ув. форумчане. Прошу помощи по работе модуля CCP в режиме захвата. Ситуация следующая: после генерирования первого события (передний фронт внешнего сигнала) CCP2, программа переходит на обработку прерывания (строка №245), где сбрасывается флаг прерывания, далее независимо от внешнего сигнала (останься он в 1 или перейдет в 0) периодически, через разные промежутки времени, возникает прерывание CCP2, хотя передний фронт на вход CCP2 не приходил. Откуда берется прерывание? V2.zip
-
Если ставлю в цепь коллектора светодиод (вместо индикатора), то он светит? И не моргает?