04.11.2012, 18:08
|
|
Гражданин KAZUS.RU
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от vlad_ru
|
Подскажите , корректна ли запись очистки таймера 1 в ССS (PIC16F887):
TMR1L = 0 ; // очистить таймер1 (младший байт)
TMR1H = 0 ; // очистить таймер1 (старший байт)
Если нет, то как правильно написать? Спасибо.
|
Может так:
?
|
|
|
|
04.11.2012, 19:19
|
|
Вид на жительство
Регистрация: 09.12.2006
Сообщений: 337
Сказал спасибо: 422
Сказали Спасибо 34 раз(а) в 26 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Не работает , в регистрах не видно очистки , компиляция кода проходит , но такое ощущение , что компилятор не воспринимает
TMR1L = 0 ;
TMR1H = 0 ;
TMR1=0;
То как правильно очистить таймер1 ???
|
|
|
|
04.11.2012, 19:30
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
vlad_ru, Как определены
TMR1L
и
TMR1H ?
В стандартном хэдере их нет.
Стандартный хэдер CCS заточен под стандартные функции .
Разместите в начале файла :
Код:
|
#byte TMR1L = 0x00E
#byte TMR1H = 0x00F |
И юзайте как хотели выше.
И уже писал хз сколько раз - есть генератор хэдеров .
Создайте свой хэдер и пользуйте наздоровье- выкинув стандартные и хэдеры и функции...
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 04.11.2012 в 19:47.
|
|
|
|
04.11.2012, 21:08
|
|
Вид на жительство
Регистрация: 09.12.2006
Сообщений: 337
Сказал спасибо: 422
Сказали Спасибо 34 раз(а) в 26 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Это не то (может я не совсем правильно понимаю)
У меня прерывание , при входе в перывание хочу очистить таймер
кусок кода:
#int_CCP1
void CCP1_isr(void)
{
int8 time,RFD;
int1 edge;
static int1 LastBit=0;
static int8 RF_data=0;
time = CCPR1L;
//#byte TMR1L = 0 // очистить таймер1 (младший байт)
//#byte TMR1H = 0 // очистить таймер1 (старший байт)
TMR1L = 0; //
TMR1H = 0; //
Наблюдаю за изменением TMR1L и TMR1H, я так так понимаю ,что при входе в прерывание они должны установиться в 0.
Последний раз редактировалось vlad_ru; 04.11.2012 в 21:10.
|
|
|
|
04.11.2012, 22:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,700
Сказал спасибо: 5,497
Сказали Спасибо 25,124 раз(а) в 5,642 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Блин, хэлпы кому писали, старались??..
Есть же штатная команда: set_timer1();
|
|
|
|
04.11.2012, 22:22
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
vlad_ru, Нет уважаемый вы не правильно понимаете.
У вас не определены адреса регистров TMR1x .
Что собственно и делает #byte
Код:
|
#byte TMR1L = 0x00E
#byte TMR1H = 0x00F |
Эти строки вставляете в самое начало файла там где дефайны глобальных переменных.
В прерывании уже обнуляете.
Код:
|
TMR1L = 0; //
TMR1H = 0; // |
Eddy71, юзание встроенных либ приведет вас в никуда...
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 04.11.2012 в 22:25.
|
|
|
|
04.11.2012, 22:39
|
|
Вид на жительство
Регистрация: 09.12.2006
Сообщений: 337
Сказал спасибо: 422
Сказали Спасибо 34 раз(а) в 26 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Вообще то определены:
#byte TMR1 = 0x00E
#byte TMR1L =0x0e
#byte TMR1H = 0x0f
#byte CCP1CON=0x017
#byte CCPR1L = 0x15
#bit CCP1IF = 0xC.2
Но сбоса не вижу , пробовал и так ![Обижен](images/smilies/icon_beee.gif) в прерывании)
#byte TMR1L = 0 // очистить таймер1 (младший байт)
#byte TMR1H = 0 // очистить таймер1 (старший байт)
|
|
|
|
04.11.2012, 22:43
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
vlad_ru,
#byte TMR1 = 0x00E
Это убрать !
Так не верно- повторяю #byte - для установки адреса переменной(регистра)
Код:
|
#byte TMR1L = 0 // очистить таймер1 (младший байт)
#byte TMR1H = 0 // очистить таймер1 (старший байт) |
Правильно :
Код:
|
TMR1L = 0; //
TMR1H = 0; // |
Кидайте проект минимальный , посмотрю...
__________________
Осторожно , злой кот
|
|
|
|
04.11.2012, 22:55
|
|
Вид на жительство
Регистрация: 09.12.2006
Сообщений: 337
Сказал спасибо: 422
Сказали Спасибо 34 раз(а) в 26 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Заранее спасибо, только не пугайтесь.
исходник с которого пытаюсь паределать тут:
http://read.pudn.com/downloads195/so...lu2270.c__.htm
сам поект:
Вложения:
![Тип файла: zip](images/attach/zip.gif) |
22.ZIP (7.3 Кб, 54 просмотров) |
|
|
|
|
04.11.2012, 23:06
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
vlad_ru, Не мешало бы схему .
Кстати в чем и как проверяете?
Я так понял в живую и в дебаге с pickit2 ?
ЗЫ- Вы можете с ссылки вашей выложить piccontrolu2270.rar ?
Я не могу там зарегиться...
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 04.11.2012 в 23:12.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:22.
|
|