![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| Я |
|
|||
|
Unregistered |
Вообщем ситуация такая. в таймере 0 есть регистр сравнения, заношу в регистр сравнения значение, наример АА. это делается для того чтобы на выходе получить напряжения 10 В, но на выходе я получаю 15 В, а если не использовать таймер то на выходе получается 30В, ситуация такая то, что не в зависимости от того, что я помещу в регистр сравнения
он мне будет всегда выдавать 15 В. такое ощущение, что таймер не сравнивает с регистром сравнения. Вот код программы: void timer0_init(void) { TCNT0 = 0x00; // set count value OCR0= 0xAA; TIMSK= 0x03; TIFR=0x03; TCCR0 = 0x01; // start timer } void timer0_over(void) { PORTC=0x00; } void timer0_comp(void) { if (Device.ScanState == 0x02) // Rotate Left { PORTC=0x10; } if (Device.ScanState == 0x03) // Rotate Right { PORTC=0x01; } } void timer0_stop(void) { PORTC=0x00; TCCR0=0x00; } SIGNAL(SIG_OVERFLOW0) { timer0_over(); } SIGNAL(SIG_OUTPUT_COMPARE0) { timer0_comp(); } |
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
Что-то я не очень понял причем здесь таймер и при чем здесь напряжение на выходе? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| PILOT |
|
|||
|
производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Я думаю, что имеется ввиду управление напряжением через ШИМ, из кода который приведен тут видно что человек пытается по сравнению утановить бит, а по переполнению очистить бит. Но вот вопрос: я не вижу где портС настроен на выход (DDRC)?
И еще не совсем понятно зачем устанавливать флаг в регистре TIFR (хотя это не влияет на результат)? СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
| Я |
|
|||
|
Unregistered |
в регистр TIFR уставновили потому что точно не знали почему у нас выдаёт 15 в. Я привёл кусок программы, PORTC у нас настроен как. Сегодня додумались, почему у анс 15 В, просто есть косяк контролера, здесь код программы приведён без предделителя, а если поставить предделитель частоты, то у нас всё нормально полуается. :-))
|
|||
|
||||
![]()
|
| Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |