Свежие обсуждения
Микроконтроллеры

Ликбез по С для микроконтроллеров PIC

1 53 64

Подскажите пожалуйста:
Повторил проектик 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?