Перейти к содержанию

Bugrim

Members
  • Постов

    235
  • Зарегистрирован

  • Посещение

Весь контент Bugrim

  1. ANSEL=0. Но только в даташите, не сказано что данный регистр влияет на работу порта В.
  2. Добрый день. Прошу помоши. Упорно не хочет читать единицу 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 - не помогло. Чего я не так делаю?
  3. То есть устанавливать не бит а записывать порт. Тогда: //при записи единицы PORTB|=mask[kanal]; //при записи нуля PORTB&=~mask[kanal]; При таком подходе маска не нужна, необходимо канал задавать правильно (1,2,4). //при записи единицы PORTB|=kanal; //при записи нуля PORTB&=~kanal; Вроде бы просто, а не догнал. Спасибо.
  4. Доброго времени суток. Использую 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 выступала в роли смещения.
  5. А в критической ситуации защитный диод не спасет? Да и многие схемы без них, как инет показывает.
  6. Вымыл тщательно. При сборке подгоняли, поэтому забыл допаять конденсаторы в снабберной цепи (потом вспомнил), так и висят на одной ноге (выпаивал для проверки). Работает 3 день без нареканий. По пыли таки, вероятней всего, утечка была.
  7. Трансформатор выходной прозвонил мегером, нормально. Буду вымывать.
  8. Инвертор применяется на производстве, производили наплавку детали (не заземленная) все в порядке, как только бросели "-" на лестнецу в здании - инвертор вышел со строя. По предприятию применяется трёх фазгая цепь с глухо заземленной нейтралью. Да и другой инвертор в этих условиях варит же.
  9. Снабберные цепи живые ( 14 Ом, 4.7 нФ). От "-" клеммы отходит тонкий провод в цепь обратной связи с оптронами. В этой цепи (все smd элементы) резисторы все живые, оптроны звонятся как диод, претензий нет. Конденсаторы в плате емкость померять не смог, но короткого нет.
  10. Спасибо за советы, завтра, если будет время, поэксперементирую. "Пациент" на работе.
  11. Вторичку отсоеденить и закоротить, первичку закоротить в плате перемычкой, звонить между обмотками и вторичку на корпус мегером. Велика вероятность окончательного выхода из строя инвертора?
  12. Уточнения: при подсоединении "-" к заземленной заготовке проскакивает искра, выходит из строя защитный диод, выбивает сетевой автомат. Это может быть из за снаберной цепи? Я полагал что выходная цепь гальванически развязана от сети и искра между заземлением и "-" никак не модет быть, а на завтра решил мегером звонить, начиная с выходного трансформатора.
  13. при повторной поломке не проверял, при первой - резисторы живые, емкость не звонится (емкость не мерял).
  14. визуально - треснут корпус, мультиметром - закорочен. Второй, мультиметром - в обрыве, надеюсь живой.
  15. Доброго времени суток форумчане. Наблюдается следующая неисправность: при подсоединении "-" к заготовке, которая заземлена, выходит из строя защитный диод (напряжение открытия 180В), в то время если варить изделие, которое не заземлено, то проблем не возникает. Первичная и вторичная обмотка выходного трансформатора тестером не звонится, на корпус тоже. Подскажите где может скрываться проблема.
  16. точку останова убрал, а программа все равно там останавливается, приходится регулярно Resetом, который в Debug пользоваться. Протеус 8.1. Ну ничего прорвемся.
  17. На глаз код выглядит по другому, точки останова (которые криво работают, по крайней мере на моей версии протеуса), просмотр/задание значений переменных и т.д. в MPLABе мне более по душе. Можно и Поэтому всего лишь "неудобств", а не проблем.
  18. Для железа программа СИЛЬНО сырая.
  19. Доброго времени суток! Помогите, вероятно что то с настройками, при отладке в MPLABX, XC8, в Proteuse PIC16F886 не хочет воспринимать данные EEPROM, определенные в программе через процедуру __EEPROM_DATA(). При этом, из среды MPLABX, в окошке EEPROM, данные изменены, в Proteuse, данные EEPROM, все равны FF. Если запустить Proteus отдельно, то данные EEPROM отображаются корректно, т.е. записанные через __EEPROM_DATA(). Для моделирования использую COF файл. Это доставляет ряд неудобств, хотелось бы непосредственно из MPLABX полноценно отлаживать программу. За ранее спасибо.
  20. Не знаю, протеус или что то не так настраивал, но задействовал CCP1 вместо CCP2 и моделируется все нормально. Всем спасибо.
  21. Доброго времени суток ув. форумчане. Прошу помощи по работе модуля CCP в режиме захвата. Ситуация следующая: после генерирования первого события (передний фронт внешнего сигнала) CCP2, программа переходит на обработку прерывания (строка №245), где сбрасывается флаг прерывания, далее независимо от внешнего сигнала (останься он в 1 или перейдет в 0) периодически, через разные промежутки времени, возникает прерывание CCP2, хотя передний фронт на вход CCP2 не приходил. Откуда берется прерывание? V2.zip
  22. Если ставлю в цепь коллектора светодиод (вместо индикатора), то он светит? И не моргает?
×
×
  • Создать...