sashaoff3 0 14 января, 2016 Опубликовано 14 января, 2016 · Жалоба Здравствуйте! Вроде всё сделал по даташиту. Но не меняется частота - как бы не изменял PR4, частота импульсов на выходе ШИМ постоянна, как будь-то всегда PR4 = 0xFFFF. Хотя отдельно проверяю выход Таймера Т4 - PR4 работает. Ширина самого импульса меняется согласно записанным зн-ям в OC1R и OC1RS. //Настройка выхода ШИМ OC1 OC1_TRIS = 0; //Выход OC1CON1 = 0; OC1CON1bits.OCTSEL2 = 0; //Выбор таймера - выбираем Timer4 OC1CON1bits.OCTSEL1 = 1; OC1CON1bits.OCTSEL0 = 0; OC1R = 300; OC1RS = 9000; OC1CON1bits.OCM = 0b101; //Настройка Таймера T4 для модуля ШИМ OC1 T4CON = 0; T4CONbits.TCS = 0; T4CONbits.TCKPS1 = 0; T4CONbits.TCKPS0 = 0; PR4 = 0x00FF; T4CONbits.TON = 1; /* Start Timer4 */ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sashaoff3 0 15 января, 2016 Опубликовано 15 января, 2016 · Жалоба Здравствуйте! Вроде всё сделал по даташиту. Но не меняется частота - как бы не изменял PR4, частота импульсов на выходе ШИМ постоянна, как будь-то всегда PR4 = 0xFFFF. Хотя отдельно проверяю выход Таймера Т4 - PR4 работает. Ширина самого импульса меняется согласно записанным зн-ям в OC1R и OC1RS. //Настройка выхода ШИМ OC1 OC1_TRIS = 0; //Выход OC1CON1 = 0; OC1CON1bits.OCTSEL2 = 0; //Выбор таймера - выбираем Timer4 OC1CON1bits.OCTSEL1 = 1; OC1CON1bits.OCTSEL0 = 0; OC1R = 300; OC1RS = 9000; OC1CON1bits.OCM = 0b101; //Настройка Таймера T4 для модуля ШИМ OC1 T4CON = 0; T4CONbits.TCS = 0; T4CONbits.TCKPS1 = 0; T4CONbits.TCKPS0 = 0; PR4 = 0x00FF; T4CONbits.TON = 1; /* Start Timer4 */ Мой плохой английский и невнимательное чтение DS70005159 приводит к таким ошибкам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться