|
|
|
|
Подскажите пожалуйста: Повторил проектик proba1 что в начале этой ветки выкладывался,заменил пик628 на пик12ф675,порт заменил с b на а(т.к. в нем один только а) ,компилируется без ошибок,но хекса нету,блокнотом открывал есть похожий на хекс но расширение-ICD? По MPLAB-7.41 в виртуале шагает,а в Протеусе-7.02SP6(выбирал- cof) нехочет?.Пробовал и осциллом и таймера делитель менять-непомогло??? Помогите где ошибка. Компилятор CCS-4.065 Файлик прикрепляю 175566.rar |
|
|
Neman2000: Подскажите пожалуйста: Neman2000: Подскажите пожалуйста: А Вы всегда, когда спрашиваете кого-то, то по 2 раза один и тот же вопрос задаете? Neman2000: есть похожий на хекс но расширение-ICD? это результат установки программы ICD-S - во время установки этой программы Вам был задан вопрос(на англ.) - "Сделать ассоциацию всех hex-файлов(файлов с расширением hex) с программой ICD-S?" и Вы нажали Ok(наверно ничего не читаете когда устанавливаете программы и нажимаете "Ok" в каждом окне?). Теперь файлы с расширением hex в системе автоматически открываются этой программой. Neman2000: По MPLAB-7.41 в виртуале шагает,а в Протеусе-7.02SP6(выбирал- cof) нехочет?.Пробовал и осциллом и таймера делитель менять-непомогло??? Помогите где ошибка. В Протеусе ничего такого сложного нет - самое главное правильно нарисовать схему, а в свойствах процессора загрузить соотв. программу в него(которую уже написали для этой схемы). Подробнее смотрите тему, где описано как работать с Протеусом. |
|
|
AleksBak подскажите пожалуйста как реально сейчас изменить расширение с ICD на hex? В протеусе все нарисовал правильно,а внизу строки идет какойто счет и мессанжи зеленые считает? |
|
|
Вот может кому пригодиться вывод на семисегментник числа d(0-1024) :
#define H 4 // размер массива для разложения #define DIG_BASE 10 //размер массива вывода unsigned CHAR SYMBOLS[DIG_BASE] = {63, 6, 91, 79, 102, 109, 125, 7, 127, 111}; // масив для вывода на 7 сег. unsigned CHAR digits[h]; //массив для разложения на тысячи, сотни ..... void Seven_segments (void) { for(j=0; j <= 3; j++){digits[j] = 0;} //обнуление while (d >= 1000){d -= 1000;++digits[0];} //разложение, тысячи while (d >= 100) {d -= 100; ++digits[1];} //.... , сотни while (d >= 10) {d -= 10; ++digits[2];} //.... , десятки digits[3] = d; //.... , еденицы j = 3; //начинаем вывод с едениц num7seg = 8; //номер сегмента выводящего еденицы while(num7seg >= 1){ //пока не вывели все цифры.... ; можно заменить на FOR m = digits[j]; output_b ( ~ (num7seg)); if (num7seg==2){SYMBOLS[m]=SYMBOLS[m]+128;} //поставить точку, если не надо всю строку стереть output_d ( (SYMBOLS[m])); //вывод цыфры num7seg = num7seg / 2 ; j = j-1; //выводим следующую цифру delay_ms (10); //пауза устанавлющая длительность свечение разряда } } |
|
|
Простая прога для мышиного колеса, надо проверить на дребезг. Может будут у кого идеи? #INT_EXT void ext_isr() //прерывание по изменению L->H на RB0 //RB0 и RB1 от колеса мыши //RB2 кнопка под колесом { if(input(Pin_B2)){fast=9;}//нажата кнопка под колесом мыши, для ускорения else fast=0; if(input(Pin_B1)){++value+=fast;} else --value-=fast; } _____ чуть редактировано |
|
|
2 Vladikas Это только для прибавления, а в другую сторону как? |
|
|
if(input(Pin_B1)){++value+=fast;} это плюс else --value-=fast; это минус |
|
|
2 Vladikas Вот мысля такая.....
#INT_EXT void ext_isr(){ flag=1; set_timer0(100); disble_interrupts(INT_EXT); } void Koleso(void) int timer; timer=get_timer0(); if (flag==1 & timer>200) { if(input(Pin_B2)){fast=9;} else fast=0; if(input(Pin_B1)){++value+=fast;} else --value-=fast; enable_interrupts(INT_EXT); flag=0; set_timer0(0); } |
|
|
Left Radio: Вот, может кому пригодится вывод на семисегментник числа d(0-1023) А так не проще?
sprintf(string,"%d",d); for(i=0;i < DIG_BASE;i++) { . . . . . .output_d(symbols[string[i]&0x0F]); }
число |d| < 32768
|
|
|
При компиляции в ЦЦС получается расширение ICD вместо hex?(хекса нету ,а вместо него файл IDC) Пробовал переставить ЦЦС-непомогает! Подскажите пожалуйста как в ЦЦС изменить расширение с ICD на hex?
|
|
|
|
|