Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Чт ноя 16, 2017 16:07:00
Всем привет!не ругайте меня сильно!Уже всю голову поломал!Не могу разобраться в SOPT2
А именно поменять PTA1 на PTA7
Чт ноя 16, 2017 16:19:08
а еще конкретнее? Непонятно, как бит туда записать?
Чт ноя 16, 2017 16:24:20
Да!До меня человек писал программу под данный проц!я не касался моторолл и вот прилетело!И значение SOPT2=6!не пойму откуда оно получилось?и задействована PTA1 а нужна PTA6 а остальное без изменений!постараюсь закинуть кусок программы ща
Чт ноя 16, 2017 16:34:52
значение SOPT2=6!не пойму откуда оно получилось?
из даташита. 6 = 0b00000110 , установлены биты 1 и 2. Вообще судя по этому, TPM2CH0 должен быть уже PTA6.
Чт ноя 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))
Чт ноя 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))
Чт ноя 16, 2017 16:58:21
И если не ошибаюсь то 3 бит в SOPT2 определяет PTA1 или PTA6
Добавлено after 6 minutes 59 seconds:
Пытаюсь разобраться где именно указывается какой порт котроллера участвует в том или ином процессе!
Чт ноя 16, 2017 17:00:13
он определяет, какой пин будет использоваться таймером. Вам же его надо использовать как простой gpio, так?
Чт ноя 16, 2017 17:07:24
В принципе да!Получается так пока команды не поступила по LIN интерфейсу на PTA6 5в,как поступила 0
Добавлено after 3 minutes 42 seconds:
Но что самое интересное один и тот же таймер висит на PTA1 и PTA6
Чт ноя 16, 2017 17:19:30
или, а не и
Чт ноя 16, 2017 17:28:25
PTADD = 0xc3;
По этой команде мы активируем PTA7,PTA6,PTA1,PTA0 правильно?
Чт ноя 16, 2017 17:34:19
ну не "активируем", а устанавливаем режим работы этих пинов на выход
Чт ноя 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))
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.