panther1

Microc (Pro)

41 сообщение в этой теме

1 час назад, IMXO сказал:

может проект нужно пересоздать или нет?

Комп был выключен, включил, все норм. запустилось (обычно он у меня на "сне"). А то и пересоздавать раз пришлось при глюках.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня подобное было. Выше редактора находится строка с открытыми проектами. Закрой все, кроме стартовой страницы и вашего проекта. После build будет все в порядке. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В библиотеке ADC сказано, что эта библиотека работает с RC-тактовым генератором, это действительно так? С кварцем, значит, не получится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В версии 5.6.1 все работает:

ADCON1=0x8E;                           // RA0 - ADC, reft

ADCON0=0x41;                         // Fosc/8 AN0
  v=ADC_Read(0);
  ADCON0=0;

частоту кварца нужно учитывать для регистра ADCON0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем здравствуйте! Подскажите, пожалуйста:

имеется unsigned char Rxd[0] (элемент массива) и signed long T; 
Далее пишем:
T = Rxd[0];
Происходит ли здесь изменение типа переменной Т на unsigned char?

Или Rxd так и остается unsigned char, а T остается signed long? Хотя в хелпе по микроСи сказано, что "Результат выражения имеет тот же тип, что и оба операнда", т.е. T вроде как должно преобразовываться к unsigned char...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    568

Если Вы перременную объявили как long, то она до конца своей жизни останется long'ом.
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хорошо. Тогда спрошу сразу на будущее: если имеем переменную long Vng, и unsigned short R, а далее присваивание:

R = Vng;

Здесь Vng будет преобразовываться к типу переменной R ? Поскольку (нашел на сайте easyelectronics.ru):

"В операциях присваивания тип значения, которое присваивается, преобразуется к типу переменной, получающей это значение." И далее Vng  так и останется unsigned short ? Но это, похоже, про Си для персональных компьютеров.

Изменено пользователем Aleksandr1111

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
snn_krs    48

Тип переменных не изменяется. Компилятор вместо

R = Vng;

Подставляет

R = Функция преобразования типа ( Vng );

Это неявное преобразование. Можно сделать явное

R = ( long )Vng;

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня подобный вопрос, а может тот-же самый, только другими словами.

(переменные возьму с предыдущих вопросов)

unsigned char R;

unsigned long Vng;  - глобальные переменные.

R=(unsigned char)Vng;

это явное привидение типов и в R поместится младший байт от  Vng.

Вопрос: отработав эту подпрограмму, каким будет Vng? long или char?

Изменено пользователем Влад Иванович
заменил short на char

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alex    568

Останется long'ом. Тип переменной - неизменная величина.
Переменная приводится к другому типу только в момент обработки выражений.

 

PS: Подпрограмма - это блок кода, имеющий точку вызова (входа) и возврата (выхода), выполняющий определённые действия. То, что Вами выше написано - не подпрограмма, а обычная операция присваивания.
 

  • Лайк 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    500
12 часа назад, Alex сказал:

Переменная приводится к другому типу только в момент обработки выражений

Значение извлекается из переменной, приводится к указанному типу и затем как-то обрабатывается в выражении. Сама исходная переменная никак не модифицируется. так правильнее. 

Изменено пользователем ARV

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexman1960    0

Всем привет!
Пишу программу в "MikroC PRO v.6.6.1" для термостата на PIC16F628A. Использую внутренний генератор без CLKOUT. Кнопки настройки термостата подключены на RA5 и RA6. Кнопками на ножки подаю ноль, подтяжка на +5В есть. В Протеусе проверяю работу, в итоге: на RA6 кнопка работает как надо, а на RA5 работает как сброс, хотя в "Edit Project" опция "RA5/MCLR/VPP Pin Function" установлена в Disabled. Бьюсь почти целый день, не пойму, что я сделал не так - RA5 не хочет работать как цифровой вход. В железе не проверял, хочу сначала отладить в Протеусе.
С ПИКами общаюсь недавно, а RA5 использую в качестве входа впервые, поэтому не хватает опыта найти косяк. Рассчитываю на вашу помощь. Настройки конфигурации во вложенном файле.
 

Конфигурация.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
IMXO    1 438
50 минут назад, Alexman1960 сказал:

RA5 не хочет работать как цифровой вход.

проверил работает.  ищите косяки в проге.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexman1960    0
6 часов назад, IMXO сказал:

проверил работает.  ищите косяки в проге.

Спасибо за оперативный ответ. Действительно, на простенькой тестовой программе и схеме всё заработало. Пойду копать термостат...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Alexman1960    0
16 часов назад, Влад Иванович сказал:

\\\\\\\\\\\\\\\\\

Спасибо, уже проверил на тестовой программе и убедился в этом.

Изменено пользователем Borodach

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас