03.01.2011, 06:42
|
|
Прохожий
Регистрация: 25.01.2010
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от rael
|
А V4.116 не глючит? Я думаю, что эксперты CCSа надо искать мастер из "Инд" или "Ганг" чтобы исправит PCWHD сорса, будет дешевле. Всё-таки CCS очень удобный, в частности для начинающих.
|
там в визарде периферию не правильно отображает. база видимо битая. я откатил на 4.108.
|
|
|
|
16.01.2011, 20:50
|
|
Прописка
Регистрация: 07.05.2008
Адрес: Москва
Сообщений: 231
Сказал спасибо: 26
Сказали Спасибо 54 раз(а) в 19 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Мира Вам форумчане! Сел изучать CCS и за одно С, пытаюсь соскачить с PBP. Встала задача как разбить беззнаковую переменную unsigned int16 SUM на ниблы т.е четыре четырёх разрядные тетрады (nibble)? Т.к собственно надо потом эти нибблы сопоставить с перекодировочной таблицей и вывести на семисегментные индикаторы.
Помогите кусочком кода, если можете. За ранее спасибо!!!!
|
|
|
|
16.01.2011, 22:29
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от Prototup
|
Встала задача как разбить беззнаковую переменную unsigned int16 SUM на ниблы т.е четыре четырёх разрядные тетрады (nibble)? Т.к собственно надо потом эти нибблы сопоставить с перекодировочной таблицей и вывести на семисегментные индикаторы.
|
Не нужно этого .
Занесло тебя не туда .
Нужно урезанная itoa IntegerTOAnsi .
Собственно перевод целого в массив символов .
http://www.microchip.su/showthread.p...ht=itoa&page=3
Пример на 5 символов , лишнее выкидывается.
PHP код:
|
unsigned char asc[5];
void itoa2(unsigned int binval)
{
int step[]={10000,1000,100,10,1};
unsigned int temp,val;
unsigned char i,atemp;
val=binval;
for (i=0; i‹5; i++)
{
temp=step[i];
atemp='0';
while(val ›= temp)
{
atemp++;
val-=temp;
}
asc[i]=atemp;
}
}
|
__________________
Осторожно , злой кот
|
|
|
|
19.01.2011, 18:06
|
|
Прописка
Регистрация: 07.05.2008
Адрес: Москва
Сообщений: 231
Сказал спасибо: 26
Сказали Спасибо 54 раз(а) в 19 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Это всё замечательно, но я всретил непреодолимую задачу перед этой (как оказалось!). Написал маленькую тестовую програмку для вывода значений в семисегментные индикаторы, которая является частью другой программы, но она не работает так как надо, а именно, какие значения не вводи – результат один и тот-же (отображаются одни и те-же цифры). В чём дело не пойму! Кучу времени истратил и хотел было совсем завязать с CCSом! У кого есть желание – глянте. На данный момент использую CCS4.114, Протеус 7.6SP4. Благодарю за ранне! Особенно Dosikus! Может действительно 4.114 глючный, но в 4.110 тоже самое. Прошивочка и схема в Проктеусе - прилагается.
Последний раз редактировалось Prototup; 19.01.2011 в 18:10.
Причина: Забыл вставить схемку
|
|
|
|
19.01.2011, 18:30
|
|
Гражданин KAZUS.RU
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Дай пожалуйста ссылку где взял 4.114. Для начала в ПРОТЕУСЕ резисторы для семисегментников не нужны(только комп грузить будут). А потом еще зачем на каждый сегмент свой регистр можноже один регистр+ ключ на каждый сегмент(получится динамическая индикация).
Последний раз редактировалось Gladkih; 19.01.2011 в 18:36.
|
|
|
|
19.01.2011, 19:49
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от Prototup
|
Может действительно 4.114 глючный, но в 4.110 тоже самое. Прошивочка и схема в Проктеусе - прилагается.
|
Для начала - прежде чем рассуждать о глючности программ , запомни следующие :
Тысячу раз греши на свои руки и только затем на программу.
Это для развития , теперь о "глюках".
1)Знакогенератор не соотвествует разводке индикаторов символ "5" будет 0x6D а не 0xB6.
2)
Код:
|
for (K=0; K‹=8; K++) |
таким макаром выводим 9 бит , а не 8. Надо
Код:
|
for (K=0; K‹=7; K++) |
3)
Код:
|
if ((datum&0x80)) {output_low (DS);} |
логическая ошибка - здесь произойдет инвертирование бита . Надо
Код:
|
if (!(datum&0x80)) {output_low (DS);} |
4) Заменил индикаторы так как на тех ни х... не видно.
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 19.01.2011 в 19:53.
|
|
|
|
19.01.2011, 19:57
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Да и
Gladkih, абсолютно прав . Лучше делать так :
__________________
Осторожно , злой кот
|
|
|
|
19.01.2011, 20:02
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
А еще лучше посегментная индикация :
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 19.01.2011 в 20:05.
|
|
|
|
19.01.2011, 20:34
|
|
Гражданин KAZUS.RU
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
а ссылочку можно?. Может уважаемый ДОСИКУС подскажет.
|
|
|
|
19.01.2011, 20:51
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от Gladkih
|
а ссылочку можно?. Может уважаемый ДОСИКУС подскажет.
|
Ссылку ниже выдели мышом...
Или нажми "цитировать".
http://www.4shared.com/file/l1ZEIjms/CCS_PCWHD_4114.html
__________________
Осторожно , злой кот
Последний раз редактировалось dosikus; 19.01.2011 в 20:53.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 21:05.
|
|