Страница 1 из 1

Указатели указатели указатели (помогите разобраться)

Добавлено: 25 фев 2019, 18:43
fusic
Доброго дня !
Задача следующая:
использую Mega 2560
работаю с PWM-ами
нужно их постоянно обновлять
имеется массив из 15-ти байт
эти 15 байт надо переложить в 15ть регистров OCR
пытаюсь делать это в цикле
для этого создаю вот такой массив
unsigned int *OCR[15] = {(unsigned int*)&OCR3B, (unsigned int*)&OCR3C, (unsigned int*)&OCR0B, (unsigned int*)&OCR3A,
(unsigned int*)&OCR4A, (unsigned int*)&OCR4B, (unsigned int*)&OCR4C, (unsigned int*)&OCR2B,
(unsigned int*)&OCR2A, (unsigned int*)&OCR1A, (unsigned int*)&OCR1B, (unsigned int*)&OCR1C,
(unsigned int*)&OCR5C, (unsigned int*)&OCR5B, (unsigned int*)&OCR5A};


далее в цикле работаю

for (byte w = 0; w < 15; w++) {
if (PWM[w] != BA[w]) { *OCR[w] = PWM[w]; };
if (PWM[w] >= PWMMin) {PWMzero = false;};
}


...вроде всё нормально работает но иногда какие-то глюки как будто новое значение ШИМа залетает не в тот OCR
+ уверен что дело именно в этих кусках кода т.к. если делать всё без цикла то проблема исчезает
- думаю что не правильно работаю с указателями НО что именно ????