Форум по микроконтроллерам: Порт сбрасывается - Форум по микроконтроллерам

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Порт сбрасывается

#1 Пользователь офлайн   4ygeca 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 16 Январь 20

Отправлено 16 Январь 2020 - 17:48

МК: pic12f683; Программа: MPLAB X IDE; Компилятор: xc8 v2.10(2.05 тоже пробовал)
Проблема: ножка порта сбрасывается на 0 через пару мкс после установления 1.
Скрытый текст
на ножке RX была подобная проблема когда запись была RX=!RX.с вводом переменной RXv все нормализовалось. я подумал что при чтении значения с порта, чтобы сделать инверсию он сбрасывался. но с ножкой CODE такой проблемы нет... она не читается в программе.Логика программы: по запросу с ТХ (прямоугольный импульс длиной около 50мс) по завершению идёт генерация импульсов синхронизации на RX а на ножке Code идёт пробитовая посылка на каждом пике RX. схема ниже по осцилограмме синий это RX жёлтый Code. Оранжевым, то к должно быть в начале, дальше исправлять не стал...где проблема? я всю голову изломал, помогите пожалуйста.

</div>

Прикрепленные изображения

  • Прикрепленное изображение: IMG_20200116_174558.jpg
  • Прикрепленное изображение: IMG_20200116_181153.jpg

0

#2 Пользователь офлайн   microsystems 

  • Прибывший
  • Группа: Пользователи
  • Сообщений: 3
  • Регистрация: 18 Январь 20

Отправлено 18 Январь 2020 - 12:28

Какая именно "ножка" сбрасывается?
И отформатируйте код, для этого есть специальный тег, иначе получается вот так: if(TMR2IE&amp;&amp;TMR2IF) {
0

#3 Пользователь офлайн   4ygeca 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 16 Январь 20

Отправлено 20 Январь 2020 - 17:14

Просмотр сообщенияmicrosystems (18 Январь 2020 - 12:28) писал:

Какая именно "ножка" сбрасывается?
И отформатируйте код, для этого есть специальный тег, иначе получается вот так: if(TMR2IE&amp;&amp;TMR2IF) {

пишу с телефона оно многое добавилось в код, чтото не усмотрел, сори.
ножки gp1 и gp0. но на gp0 решилась проблема вводом переменной RXv, чтобы не происходило чтений с порта и она заработала нормально, до нее было RX=!RX; но с gp1 чтения не происходит... вроде все просто и должно работать, но нифига не пашет
0

#4 Пользователь офлайн   4ygeca 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 16 Январь 20

Отправлено 20 Январь 2020 - 19:57

в новом сообщении скидывал код заново и он не скинулся, хотя в предпросмотре был... amp лишнее во всех условиях.... как и lt gt в include... pre div style в начале и в конце лишение так же оформлено верно, компилятор ни на что не ругается. условия проверяют флаги какое прерывание сработало...
0

#5 Пользователь офлайн   microsystems 

  • Прибывший
  • Группа: Пользователи
  • Сообщений: 3
  • Регистрация: 18 Январь 20

Отправлено 20 Январь 2020 - 20:08

Тогда прикрепите к сообщению файл.
0

#6 Пользователь офлайн   4ygeca 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 16 Январь 20

Отправлено 21 Январь 2020 - 11:49

Просмотр сообщенияmicrosystems (20 Январь 2020 - 20:08) писал:

Тогда прикрепите к сообщению файл.




// PIC12F683 Configuration Bit Settings

// 'C' source line config statements

// CONFIG
#pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
#pragma config CP = ON // Code Protection bit (Program memory code protection is enabled)
#pragma config CPD = ON // Data Code Protection bit (Data memory code protection is enabled)
#pragma config BOREN = OFF // Brown Out Detect (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 statements should precede project file includes.
// Use project enums instead of #define for ON and OFF

#include <xc.h>


#define TX GP2
#define RX GP0
#define CODE GP1

unsigned char i=0;
unsigned char RXv;
const char data[255] = {
0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, // 15 bits PREPARE TO SEND
};



void __interrupt() isr(void) {
if(TMR2IE&&TMR2IF) {
if(!RXv) {
CODE=!data[i];. // проблема вот тут
i++;
}
RX=!RXv;
RXv=!RXv;
TMR2IF=0;
return;
}
if(INTE&&INTF) {
TMR2ON=1;
TMR2IF=0;
TMR2IE=1;
RX=1;
RXv=1;
CODE=1;
}
INTF=0;
return;
}

void main(void) {

// MC CONFIG
OSCCON=0b01110100;
OSCTUNE=0b00001111;

GIE=1; // Global INTERRUPT on
PEIE=1;
INTE=1; // internal INTERRUPT on
INTEDG=1; // Interrupt on rising edge
T2CON=0; //Config TIMER2 PreScealer 1:1 PostScealer 1:1
PR2=90; // TMR2 interrupt, RX frequency
TRISIO=0b00111100; // Set GP2 input GP1 GP0 output
ANSEL=0; //Set ports as digital
WPU=0b111000; //Disabble weak pull ups
// IOC=0; // Interrupt on changes off
// RX=0; // Set RX to logical 1
// CODE=0; // Set CODE to logical 1
// RXv=0;
while(1) {
if(i==255) {
TMR2IE=0;
i=0;
CODE=0;
RX=0;
RXv=0;
}

}

}
0

#7 Пользователь офлайн   microsystems 

  • Прибывший
  • Группа: Пользователи
  • Сообщений: 3
  • Регистрация: 18 Январь 20

Отправлено 23 Январь 2020 - 11:47

Проверяйте.

Прикрепленные файлы


0

#8 Пользователь офлайн   4ygeca 

  • Новичок
  • Pip
  • Группа: Пользователи
  • Сообщений: 5
  • Регистрация: 16 Январь 20

Отправлено 24 Январь 2020 - 13:09

Просмотр сообщенияmicrosystems (23 Январь 2020 - 11:47) писал:

Проверяйте.


Огромное приогромнейшее спасибо!!!! помогло
CMCON0=0x07; не отключенный компаратор все сбивал.
спасибо ещё раз! вы единственный человек, кто откликнулся и помог. ещё раз большое спасибо) я неделю до этого тупил с этим) вы просто не представляете как я вам благодарен.

Сообщение отредактировал 4ygeca: 24 Январь 2020 - 13:11

0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей