Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

9s08sg32

Чт ноя 16, 2017 16:07:00

Всем привет!не ругайте меня сильно!Уже всю голову поломал!Не могу разобраться в SOPT2
А именно поменять PTA1 на PTA7

Re: 9s08sg32

Чт ноя 16, 2017 16:19:08

а еще конкретнее? Непонятно, как бит туда записать?

Re: 9s08sg32

Чт ноя 16, 2017 16:24:20

Да!До меня человек писал программу под данный проц!я не касался моторолл и вот прилетело!И значение SOPT2=6!не пойму откуда оно получилось?и задействована PTA1 а нужна PTA6 а остальное без изменений!постараюсь закинуть кусок программы ща

Re: 9s08sg32

Чт ноя 16, 2017 16:34:52

значение SOPT2=6!не пойму откуда оно получилось?

из даташита. 6 = 0b00000110 , установлены биты 1 и 2. Вообще судя по этому, TPM2CH0 должен быть уже PTA6.

Re: 9s08sg32

Чт ноя 16, 2017 16:43:33

void PeriphInit(void)
{

SOPT1 = 0x20; // Disables COP and Enable STOP instruction
SOPT2 = 6; // TPM1CH1 on PTC1 -> PWM_SPARK;
// TPM1CH0 on PTA0 -> PWM_VENT;
//

// Selects FEI mode
// Sets trimming for fBUS about 25 MHz
ICS_FEI();

//
PTAD = 0x83;
PTBD = 0x20; // SPI CS OFF
PTCD = 0x02;
//
PTADD = 0x83; // EN_VENT and EN_SPARK pins
PTBDD = 0xA0; // SPI_CS and EN_19V pins
PTCDD = 0x0A; // IN_PUMP pin PTC3(IN_FPUMP), PTC1 (PWM_SPARK)

// Enable all pullups
PTAPE = 0xFF;
PTBPE = 0xFF;
PTCPE = 0xFF;

Добавлено after 2 minutes 24 seconds:
Я все не пойму как мне вместо PTA1 управление поставить на PTA6!по сути только заменить порт,но деревянный я и не могу найти подвох

Добавлено after 1 minute 32 seconds:
как раз EN_VENT в данный момент висит на PTA1 а надо сместить на PTA6

Добавлено after 2 minutes 40 seconds:
#define Vent_OFF (PTAD |= 0x02)
#define Vent_ON (PTAD &= (~0x02))

Re: 9s08sg32

Чт ноя 16, 2017 16:50:27

отоночо.

судя по даташиту и этому куску кода, что-то типа того:
Код:
...
SOPT2 = 0x02;
...
PTAD = 0xc3;
...
PTADD = 0xc3;
...
#define VENT_PIN (0x40)
#define Vent_OFF (PTAD |= VENT_PIN)
#define Vent_ON (PTAD &= (~VENT_PIN))

Re: 9s08sg32

Чт ноя 16, 2017 16:58:21

И если не ошибаюсь то 3 бит в SOPT2 определяет PTA1 или PTA6

Добавлено after 6 minutes 59 seconds:
Пытаюсь разобраться где именно указывается какой порт котроллера участвует в том или ином процессе!

Re: 9s08sg32

Чт ноя 16, 2017 17:00:13

он определяет, какой пин будет использоваться таймером. Вам же его надо использовать как простой gpio, так?

Re: 9s08sg32

Чт ноя 16, 2017 17:07:24

В принципе да!Получается так пока команды не поступила по LIN интерфейсу на PTA6 5в,как поступила 0

Добавлено after 3 minutes 42 seconds:
Но что самое интересное один и тот же таймер висит на PTA1 и PTA6

Re: 9s08sg32

Чт ноя 16, 2017 17:19:30

или, а не и

Re: 9s08sg32

Чт ноя 16, 2017 17:28:25

PTADD = 0xc3;
По этой команде мы активируем PTA7,PTA6,PTA1,PTA0 правильно?

Re: 9s08sg32

Чт ноя 16, 2017 17:34:19

ну не "активируем", а устанавливаем режим работы этих пинов на выход

Re: 9s08sg32

Чт ноя 16, 2017 17:54:35

Как я понял надо PTADD = 0xc0;т.к. Нужны тока PTA7 и PTA6

Добавлено after 19 minutes 32 seconds:
// Initializes various registers and peripherals
/////////////////////////////////////////////////////////////////////////////////////////
void PeriphInit(void)
{

SOPT1 = 0x20; // Disables COP and Enable STOP instruction
SOPT2 = 0x02; // TPM1CH1 on PTC1 -> PWM_SPARK;
// TPM1CH0 on PTA0 -> PWM_VENT;
//

// Selects FEI mode
// Sets trimming for fBUS about 25 MHz
ICS_FEI();

//
PTAD = 0xC0;
PTBD = 0x20; // SPI CS OFF
PTCD = 0x02;
//
PTADD = 0xC0; // EN_VENT and EN_SPARK pins
PTBDD = 0xA0; // SPI_CS and EN_19V pins
PTCDD = 0x0A; // IN_PUMP pin PTC3(IN_FPUMP), PTC1 (PWM_SPARK)

// Enable all pullups
PTAPE = 0xFF;
PTBPE = 0xFF;
PTCPE = 0xFF;
#define Spark_OFF (PTAD |= 0x80)
#define Spark_ON (PTAD &= (~0x80))
#define Vent_OFF (PTAD |= 0x40)
#define Vent_ON (PTAD &= (~0x40))
Ответить