01.08.2012, 00:48
|
#1041
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2003
Адрес: Москва
Сообщений: 2,530
Сказал спасибо: 737
Сказали Спасибо 1,927 раз(а) в 799 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от varostov
|
теперь вспоминаю даже PIC18 (правда, с CCS) как страшный сон
|
У меня еще горсть 10-12-16 пиков лежит. На будущее, да, конечно.
Но все ж интересно, откуда ноги растут у этого глюка. Насчет volatile посмотрю завтра.
__________________
Опыт - это школа, в которой человек узнает, каким дураком он был раньше.
|
|
|
|
01.08.2012, 02:40
|
#1042
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
__________________
Глаза боятся,а руки делают.
|
|
|
|
01.08.2012, 09:30
|
#1043
|
Прописка
Регистрация: 14.10.2006
Адрес: Ростов-на-Дону
Сообщений: 113
Сказал спасибо: 14
Сказали Спасибо 32 раз(а) в 21 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Цитата:
|
Глаза боятся,а руки делают
|
На самом деле боязнь 3,3v - чисто психологическая. Главное, не тащить за собой груз "привычных" 5-вольтных девайсов - закачаешься делать преобразователи уровня и ловить связанные с ними глюки. Надо сразу сменить всю экосистему - например, часики DS1307 на DS1338Z-33, и т.д.
|
|
|
Сказали "Спасибо" varostov
|
|
|
02.08.2012, 16:18
|
#1044
|
Прописка
Регистрация: 20.10.2008
Сообщений: 103
Сказал спасибо: 95
Сказали Спасибо 25 раз(а) в 18 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
А вот у мну такой вопрос.
Собрался собрать ![Думаю...](images/smilies/icon_think.gif) небольшой таймер, максимальное время 5-6 часов ну там кнопочки "+", "-", и тд и тп., Индикаторы (думаю LED).
Для начала нарисовал простейшую схемку в Протеусе - F84 + Led.
Написал простенькую програмку, светодиод с интервалом 1 сек. то потухает, то погасает ![Думаю...](images/smilies/icon_think.gif) .
1. Для проверки частоты выдаваемой PIC'ом, в схему вставил 4060 и заставил выдавать частоту 0.5Гц (по идее такая же как и выходная в программе), поставил осцилограф.
2. Не совпадают частоты. А если учесть, что таймер будет считать 3-4 часа, то ошибка по времени будет - мама не горюй. И это эмуляция только!, а если это паять в железе? Ведь еще и от кварца сильно зависить будет, и от температуры окружающей.
3. Можно, конечно, в схему поставить ту же 4060 + кварц 32768 и по INT0 обрабатывать прерывания. Но хотелось бы как то удешевить и упростить схему.
Может кто сталкивался с такой проблемой?
Код:
|
#include ‹Timer.h›
#define Led RA0_Bit //Переназначим переменную RA0_Bit, описанную в ".h" в переменную Led
Char TMR0_Counter = 0;
Int1 Tmr_Ok;
#int_Timer0
void Timer0_ISR (void)
{
TMR0_Counter++;
If (TMR0_Counter›200)
{
TMR0_Counter=0;
Tmr_ok=1;
}
TMR0_reg = 101; //1мксек * 32 * (256-98) ~ 0.05 сек,
чёта не та частота, поставил 101)
T0IF_bit=0;
}
void main()
{
Int1 Light=0;
set_tris_a (0b00000000); //Все выводы порта a - выходы
set_tris_b (0b11111111); //RB7...RB0 - входы
Port_A = 0x00;
enable_interrupts(GLOBAL); //вааще разрешим прерывания
enable_interrupts (INT_TIMER0);
setup_timer_0 (RTCC_DIV_32 | RTCC_INTERNAL);
TMR0_reg = 101;
while(TRUE)
{
If ((Tmr_ok==1) && (Led==0))
{
Led=1;
Tmr_ok =0;
}
If ((Tmr_ok==1) && (Led==1))
{
Led=0;
Tmr_ok=0;
}
}
} |
|
|
|
|
02.08.2012, 17:50
|
#1045
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Так где проект в протеусе,откуда я знаю какой у тебя кварц там) Что там у тебя за подключаемый файл Timer.h
__________________
Глаза боятся,а руки делают.
Последний раз редактировалось CERGEI1982; 02.08.2012 в 18:01.
|
|
|
|
02.08.2012, 18:27
|
#1046
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от rexdn
|
1. Для проверки частоты выдаваемой PIC'ом, в схему вставил 4060 и заставил выдавать частоту 0.5Гц (по идее такая же как и выходная в программе), поставил осцилограф.
2. Не совпадают частоты. А если учесть, что таймер будет считать 3-4 часа, то ошибка по времени будет - мама не горюй. И это эмуляция только!, а если это паять в железе? Ведь еще и от кварца сильно зависить будет, и от температуры окружающей.
3. Можно, конечно, в схему поставить ту же 4060 + кварц 32768 и по INT0 обрабатывать прерывания. Но хотелось бы как то удешевить и упростить схему.
Может кто сталкивался с такой проблемой?
|
Одни эмоции и кулибинские костыли .
http://www.ccsinfo.com/forum/viewtop...er=asc&start=0
__________________
Осторожно , злой кот
|
|
|
Сказали "Спасибо" dosikus
|
|
|
02.08.2012, 18:42
|
#1047
|
Прописка
Регистрация: 20.10.2008
Сообщений: 103
Сказал спасибо: 95
Сказали Спасибо 25 раз(а) в 18 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Проэкт.
Карц - 4Мгц.
Цитата:
|
Одни эмоции и кулибинские костыли.
|
Есть немного ![Думаю...](images/smilies/icon_think.gif) , начал потихоньку изучать CCS, что то с трудом в голову идёт ![Озадачен](images/smilies/icon_confused.gif) . А за ссылочку спасибо
|
|
|
|
02.08.2012, 21:28
|
#1048
|
Прописка
Регистрация: 20.10.2008
Сообщений: 103
Сказал спасибо: 95
Сказали Спасибо 25 раз(а) в 18 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
@dosikus
Спасибо за ссылку.
Извените за вопросы, туплю наверно, или ткните в инфу, где можно прочитать, или объясните.
1. В программу (из вашей ссылки) добавил строки
Ticker_1 = XTAL_FREQUENCY;
Ticker_2 = XTAL_FREQUENCY / 4;
Ticker_3 = TIMER1_FREQUENCY;
2. Скомпелил код, смоделировал на Протеусе. Работает.
вопрос : в программе определенно следующее
#define XTAL_FREQUENCY 20000000
#define TIMER1_FREQUENCY (XTAL_FREQUENCY / 4)
а значение Ticker_1, Ticker_2 и Ticker_3 вы видете. Какая связь?
Пы Сы. не пинайте, спросить, кроме как у вас, не у кого.
Последний раз редактировалось rexdn; 02.08.2012 в 21:33.
|
|
|
|
02.08.2012, 22:00
|
#1049
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от rexdn
|
а значение Ticker_1, Ticker_2 и Ticker_3 вы видете. Какая связь?
|
Не понял какая связь ?
Вы создали 3 переменные и присвоили им значения констант .
__________________
Осторожно , злой кот
|
|
|
|
02.08.2012, 22:10
|
#1050
|
Прописка
Регистрация: 20.10.2008
Сообщений: 103
Сказал спасибо: 95
Сказали Спасибо 25 раз(а) в 18 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Ну да, но
XTAL_FREQUENCY = 20 000 000, а Ticker_1 = 11520 (см. рисунок протеуса)
TIMER1_FREQUENCY = XTAL_FREQUENCY / 4 , а Ticker_3 = 19264
вот это мне и не понятно
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 04:32.
|
|