#define GPAMUX2 (*(volatile unsigned long *)(0x6F88))
EALLOW;
GPAMUX2=0;
GPAMUX2|=1<<15;//(15 или больше)
EDIS;
В итоге: GPAMUX = 11111111111111111000000000000000b
Оптимизации компилятора отключены.
Что, он 32х разрядный сдвиг не умеет???? Чё делать?
Есть идея разбить регистр на два 16ти битных GPAMUX2H и GPAMUX2L...Но как-то не хочется этого делать...
Что посоветуете??
Из доков:
Shift Operations
The shifter holds 64 bits and accepts either a 16-bit, 32-bit, or 64-bit input
value.
Попробую щас ещё
GPAMUX2|=(unsigned long)1<<15;
Может поможет ))
Ха ха - и вправду сработало!
Ну вот, знайте товарищи, чтобы провернуть сдвиг более чем на 14 нужно принудительно привести тип к 32х битному.
Зря тему новую открыл - сам же и разобрался.
Ну может быть кому-то полезна будет.
Или удалят
