|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 7:15 pm
| Автор |
Съобщение |
|
bobi13
Ранг: Минаващ
Регистриран на: Сря Авг 07, 2013 1:11 am Мнения: 41
|
 Re: Проблем с таймер
Прав си, но просто така съм свикнал, тъй като да кажем флаговете за бутоните ги ползвам винаги така. Друг е въпроса дали ако извадя част от функциите от таймера, ще успея да променя бързодействието. Преди малко пробвах нещо друго - Т1 го сложих на 80us и като натисках бутоните импулса се увеличаваше с точно 80us без да се получава някакво отместване. Докато при 1мс на прекъсване, не покачваше стойносттта с точно 1мс.
|
| Вто Сеп 08, 2015 9:04 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
 Re: Проблем с таймер
Само не знам защо реши че не можеш да изпозлваш хардуерния. PCA модула може да изпозлва следните сорсове : SYSCLK, SYSCLK/4, SYSCLK/12, Timer 0 overflow. A timer 0 може да се клоква по sysclk / 12, и може да е в 16 битов режим, което при 2 Mhz sysclk прави 2/(12*65536) = 2.54 hz ориентировъчно, което пък значи че ако клочиш по него PCA който е в 16 битов режим може да получиш импулс с честота мнооого под 1 Hz. Поогледай пак описанието PCA да не би аз да се бъркам нещо, ама едва ли .... както казах тия процесори поне по отношение на PWM иам малко неща които не ги могат.
|
| Сря Сеп 09, 2015 3:11 am |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
 Re: Проблем с таймер
Аааа и както колегите съветват разкарай всичко от прекъсването, в прекъсването трябва да имаш минимално изпълним код, всичко трябва да излезе отвън, прекъсванията не са диспечър на процеси, ако искаш да работиш на тоя принцип пусни му RTOS-а, върви с Кейла, но лично за мен е безсмислен за такова въшле.
|
| Сря Сеп 09, 2015 3:13 am |
|
 |
|
bobi13
Ранг: Минаващ
Регистриран на: Сря Авг 07, 2013 1:11 am Мнения: 41
|
 Re: Проблем с таймер
ТоHu, можеш ли дадеш пример как точно ще стане това защото като разглеждах PCA модула не ми стана ясно. Както го разбирам ще мога да променям само PWM, но не и честотата.
|
| Сря Сеп 09, 2015 7:37 am |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
 Re: Проблем с таймер
Настройваш pca да се клочи по препълване на таимер 0, така честотата я регулираш с прелоуда на таймер 0 а pwm от съответния регистър, имаш 4 канала. Ти нямаш ли config toolа на силабс?
|
| Сря Сеп 09, 2015 8:52 am |
|
 |
|
bobi13
Ранг: Минаващ
Регистриран на: Сря Авг 07, 2013 1:11 am Мнения: 41
|
 Re: Проблем с таймер
Имам го, но просто ми е малко мъгляво как ще стане цялото нещо.
|
| Сря Сеп 09, 2015 8:57 am |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
 Re: Проблем с таймер
Погледни там, pca го правиш по таймера, това е най-нормалния начин. Таймера го сетваш както рчти е кеф. Ако 8 битов ти е ок като честота го слагаш да е аутолоад, ако ти е малко го сетваш в 16 битов режим и го зареждаш през прекъсване за нужната честота. Например на 1 мхц и делител 1, искаш честота 1 кхц.На всяко прекъсване по препълване влизаш и го сетваш на 64535, така той ще изцъка 1000 клока и ще препълни отново и т.н. Ето ти цъкане на 1 кхц. Честотите са съвсем примерни.... Пиша от талафон така че в съкратен вид
|
| Сря Сеп 09, 2015 9:05 am |
|
 |
|
bobi13
Ранг: Минаващ
Регистриран на: Сря Авг 07, 2013 1:11 am Мнения: 41
|
 Re: Проблем с таймер
Т.е. нагласям Т0 на 1мс, след това слагам PCA като предварително съм го нагласил да се пуска при Timer0 overflow?
|
| Сря Сеп 09, 2015 9:52 am |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
 Re: Проблем с таймер
Е все още съм на талафон не ги помня наизуст регистрите, аз зятова те питах нямаш ли конфиг тула. Като се разсъня след малко ще пусна компо.
|
| Сря Сеп 09, 2015 3:54 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30686 Местоположение: София
|
 Re: Проблем с таймер
Ето това мисля че е :
void Timer_Init() { TMOD = 0x02; TH0 = 0x58; }
void PCA_Init() { PCA0CN = 0x40; PCA0MD = 0x04; PCA0CPM0 = 0xC2; PCA0CPH0 = 0x80; }
Това е при осцилатор 2 Mhz и timer 0 в autoload режим. При по висока тактова честота ще трябва да го сетваш ръчно.
|
| Сря Сеп 09, 2015 5:02 pm |
|
 |
|
marcuka68
Ранг: Ориентиран
Регистриран на: Пет Авг 07, 2009 4:58 pm Мнения: 273
|
 Re: Проблем с таймер
Тук има засичане на много бутони, ако искаш, хвърли един поглед. Не е даден кодът на извикващите функции, но мисля, че принципът на работа се разбира.
|
| Пет Сеп 11, 2015 8:33 am |
|
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 7 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|