Jump to content
artos5

Pic16f1824 сформировать меандры и двигать фазу

Recommended Posts

Добрый день уважаемые! Кто решал подобную задачу?

Нужно сформировать меандр на двух выходах и двигать фазу.

Я это понимаю так:

1) Нужно настроить предделитель таймера . TxCKPS

 

2) нужно настроить срабатывание CCPx на инвертирование при совпадении.

CCPxM=0b0010;

3) Нужно настроить период счётчика PRx и настроить срабатывание CCPx от какого таймера . CxTSEL

 

4) И нужно включить таймер .

 

Пока что тестирую в протеус, так как в командировке. В отладке ведёт себя странно выходной сигнал. По идее если изменять регистр совпадения CCPR1L , то должна двигаться фаза . А по факту просто генерится меандр с частотой Fosc/4 , или Fosc/8.

Кто в пиках хорошо разбирается , подскажите что делаю не так?

К вечеру могу код инициализации скинуть (когда ноут включу).


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

Все же я связываю проблемы с плохой оптимизацией протеус под микроконтроллеры PIC . Потому как поведение при отладке значительно отличается от описания в документации . И в придачу не работает два выхода . Хотя по конфигурации должны работать все 4 выхода CCPx


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Share this post


Link to post
Share on other sites

Время – деньги и наноамперы: применение часов реального времени Maxim Integrated

Зачем использовать внешнюю микросхему часов реального времени (RTC), а не внутренние RTC микроконтроллера? Хотя бы потому, что у RTC MAX31342 производства Maxim Integrated типовое потребление составляет 150 нА при 3 В и температуре 25°С, а у встроенных RTC одного из самых малопотребляющих микроконтроллеров при тех же условиях – примерно 370 нА.

Читать статью

Добрался до ноута, вот мой тестовый код:

#include <xc.h>
#define _XTAL_FREQ 100000

// CONFIG2
#pragma config WRT = OFF        // Flash Memory Self-Write Protection (Write protection off)
#pragma config PLLEN = OFF      // PLL Enable (4x PLL disabled)
#pragma config STVREN = ON      // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
#pragma config BORV = LO        // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LVP = ON         // Low-Voltage Programming Enable (Low-voltage programming enabled)

void SetPWM (unsigned char nm, unsigned int dc)
{

  switch(nm)

  {

    case 1:
         CCPR1L = dc>>2;
         CCP1CON &= 0xCF;
         CCP1CON |= 0x30&(dc<<4);
      break;

    case 2:
         CCPR2L = dc>>2;
         CCP2CON &= 0xCF;
         CCP2CON |= 0x30&(dc<<4);
      break;

  }

}

void main(void) {
 int fl=0, i=0;   
    TRISC=0x01;
    TRISA=0x00;
   CCP1CON = 0x02; //PWM mode CCP
   CCP2CON = 0x02;
   CCP3CON = 0x02;
   CCP4CON = 0x02;
   OPTION_REG|=0x05;
   CCPTMRS0=0x81;

    
    //PR1=255;
    PR2=255;
    PR4=255;
    PR6=255;
  
  //  T2CKPS1 = 1; //TIMER2 prescaler 1:16
  //  T2CKPS0 = 1;
  //  T4CKPS1 = 1; //TIMER4 prescaler 1:16
  //  T4CKPS0 = 1;
  //  T6CKPS1 = 1; //TIMER6 prescaler 1:16
  //  T6CKPS0 = 1;
    T2CON=0x0E;
T4CON=0x0E;
T6CON=0x0E;

    TMR2ON=1;
    TMR4ON=1;
    TMR6ON=1;

    while(1)
    {
    
  SetPWM(1, i);
  SetPWM(2, i+100); //SetPWM(2, 1023-i);
    //SetPWM(2, 1023-i);
    //if(fl==0) i++;
    //else i--;
    //if(i>1023) fl=1;
    //else if(i<=0) fl=0; 
  i=1;
    }
    return;
}

 Частоту специально понизил чтобы протеус меньше напрягался. В дальнейшем буду использовать частоту тактирования 20мГц от кварца.


Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

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...

  • Сообщения

    • Насчёт что нить стянуть - точно) ничего не возьмёшь - поставлю в баню. Даже калонки фуфел - хоть и корпус - дерево, звучание гдет далеко там заныкалось)) 
    • Схем сейчас такая. Та что до этого без оос неправильная, сорян.  Пока что не убрал оос.
    • @Soundoverlord ,да больше не понял существования негра с хоботом
    • Что ждать от мц с бубнящими колонкам. И самое поганое что ничего не выцедишь из него кроме трансформатора,да и то не для всех целей. В основном в гаражах или на работе люди пользуют в качестве приемника и иногда если есть вход aux просят сделать приблуду чтобы флешку читала
    • Сосед узнав что увлекаюсь электроникой - отдал мне центр, полностью в рабочем состоянии и кучей калонок, так вот - это Жесть) даже всем ненавистная радиотехника звучит намного приятней, помню было дело все гонялись за этими центрами) красивая обёртка и реклама сделала свое чёрное дело)) звучание вообще ни о чем, хоть с родными калонками - хоть АС50. И никакие - куча настроек не помогает. 
    • Через нас прошло несколько. У одного (на сколько я помню) схема креста/пивей была, у другого QSC. Оба б/у были. После отмывки отработали без нареканий. Который QSC - мощный и тяжёлый, корпус 2U. Единственное, что не понравилось так это ручки для переноски. Они такие же как с Ваших фото. Очень не удобные и неухватистые. 
×
×
  • Create New...