Поклонники продукции Microchip Technology Inc тусуются тут.
Вт апр 08, 2014 22:11:50
Для того чтобы работали нормально программные задержки сделайте так:
- Код:
#include <xc.h>
#ifndef _XTAL_FREQ
// Unless already defined assume 4MHz system frequency
// This definition is required to calibrate __delay_us() and __delay_ms()
#define _XTAL_FREQ 4000000
#endif
можно использовать типа так:
для микросекунд __delay_us(485); для миллисекунд __delay_ms(750);
тут у вас закомментировано
- Код:
diod = 1;
//_delay (50000);
//diod = 0;
//_delay (50000);
пробуйте так:
- Код:
diod = 1;
__delay_ms(500);
diod = 0;
__delay_ms(500);
Вт апр 08, 2014 22:38:38
oleg110592 писал(а):для микросекунд __delay_us(485); для миллисекунд __delay_ms(750);
Насколько помнится с такими параметрами у xc8 проблемы в макросах задержки , и рекомендуется юзать свои обертки типа:
- Код:
void delay(unsigned short del)
{
while (del--) __delay_ms(1);
}
Вт апр 08, 2014 22:53:18
вроде в xc8 с этим стало получше:
Вт апр 08, 2014 22:54:56
oleg110592 писал(а):вроде в xc8 с этим стало получше:
Не а . Воткни ему 500 и увидишь . Правда на MPLABX тестил.
ЗЫ надеюсь
podgot это не твой репертуар ?
Вт апр 08, 2014 23:07:41
долго симулирует - ни нашим и не вашим - 200
:
podgot скопипастил выше, пользуюсь (не всегда
) рекомендациями:
http://habrahabr.ru/post/172091/13. Все имена следует записывать по-английски.
fileName; // НЕ РЕКОМЕНДУЕТСЯ: imyaFayla
Английский наиболее предпочитетелен для интернациональной разработки.
Вт апр 08, 2014 23:20:22
oleg110592 писал(а): ни нашим и не вашим - 200
:
Ну да для Mid Range работает . Это у мну в проекте на 18ом ошибки гонит .
Хотя я такие задержки и не юзаю , лучше на таймерах и не тупые а на state machine ...
Ср апр 09, 2014 11:50:11
На PIC16F72 так и не работает
Печаль, беда. Как для нее инициализацию сделать? Я похоже сам так и не разберусь, буду очень благодарен за помощь!
---
Почему на PIC16F628 не надо было явно нигде переключать выходы из аналогового состояния в цифровое?
Ср апр 09, 2014 12:02:16
Инициализацию чего? Конфига? Портов?
Конфиг в разделе 11.1, порты в разделе 3. Там в таблицах 3-1..3-6 расписаны функции портов и регистры, связанные с этими портами (А,В,С). Пройдите по всем регистрам и сконфигурируйте их под свои нужды.
Касательно второго вопроса ответ очень простой: в 628-м нет АЦП, порты только цифровые. Но там еще компаратор есть, его инициализировать надо.
Ср апр 09, 2014 12:09:17
в симуляторе Mplab 8 работает:
Спойлер
- Код:
#include <xc.h>
#ifndef _XTAL_FREQ
// Unless already defined assume 4MHz system frequency
// This definition is required to calibrate __delay_us() and __delay_ms()
#define _XTAL_FREQ 4000000
#endif
//#pragma config MCLRE=OFF
//#pragma config CP=ON
//#pragma config CPD=OFF
#pragma config BOREN=ON
#pragma config WDTE=OFF
//#pragma config LVP=OFF
#pragma config PWRTE=ON
#pragma config FOSC=HS
#define knopka RB4
#define diod RA0
void podgot (void)
{
ADCON1 = 0b00000111;
TRISA = 0b00000000;
TRISB = 0b00010000;
PORTA = 0;
PORTB = 0;
nRBPU = 0;
}
void main (void)
{
podgot ();
while (1)
{
diod = 1;
__delay_ms (500);
diod = 0;
__delay_ms (500);
}
}
Спойлер
на всякий hex файл
Последний раз редактировалось
oleg110592 Ср апр 09, 2014 12:18:43, всего редактировалось 2 раз(а).
Ср апр 09, 2014 12:11:17
Zhuk72 писал(а):там еще компаратор есть, его инициализировать надо.
Наоборот... его отключать надо...
Ср апр 09, 2014 12:14:32
Отключение или включение - суть инициализация. Это уже от конкретных нужд зависит.
Забыл упомянуть про УСАРТ. Но он не мешает, если его спецом не включать.
Ср апр 09, 2014 12:47:24
Zhuk72 писал(а):Отключение или включение - суть инициализация.
Сам то понял что ляпнул ?
Инициализация - есть
включение и конфигурация , а тебе сказали - выключить ...
Последний раз редактировалось
dosikus Ср апр 09, 2014 12:47:46, всего редактировалось 1 раз.
Ср апр 09, 2014 12:47:25
Залил готовый хекс, не работает
Отлаживаю свой проект, фигня идет какая то, в RA0 должна быть 1 после шага на скрине, но там ничего не поменялось, вечно ноль сидит.
- 1.jpg
- (106.58 KiB) Скачиваний: 583
-----
Поменял порт на RB0, по крайней мере отладка пошла, состояние порта меняется, сейчас вживую попробую
Ср апр 09, 2014 12:51:20
А что можно увидеть при задержке 50 тактов ?
Ср апр 09, 2014 12:52:58
Так если делать Step Ower, то в отладке то видно как меняется состояние порта, там без разницы какая задержка, или нет? Вот щас поставил порт RB0, но еще хекс не залил, попробую как на живом будет
---
Фигня опять ( в отладке состояние меняется, а вживую лампочка просто горит, какая бы задержка там не стояла.
Ср апр 09, 2014 13:37:56
Гы, так в живую на светодиоде меандр... Отладки в этом контроллере нет....
Вот он и светится..., в полнакала.
Ср апр 09, 2014 13:42:54
dosikus писал(а):Сам то понял что ляпнул ?
Я знаю, что компаратор нужно отключить. "Инициализация компаратора на отключение" пойдет? Если и это не устроит, то хорошо, признаюсь, что я выразился неоднозначно. Какая разница как выразиться. Я и так сомневаюсь, что автор темы вообще понял, что означает загрузка в CMCON0 значения 0х07.
Kotto, если delay 50 означает задержку в 50 милли- или микросекунд, то как это должно отражаться на светодиоде? Вам же выше предлагали писать
- Код:
diod = 1;
__delay_ms (500);
diod = 0;
__delay_ms (500);
А для лучшей визуальности вообще 1000.
Ср апр 09, 2014 14:02:36
Да я уже от нуля до 50 тыщ интервалы прогнал, с шагом в 500, ни так ни сяк, светится и все тут, не мигая
Ср апр 09, 2014 14:20:48
Напишите __delay_ms (1000), как выше советовали.
50000 тактов, как я понимаю, при написании просто delay дадут 50 мс задержку. При ней мигания не будет.
Ср апр 09, 2014 14:23:52
Да писал я и тысячу тоже, не хочет и все тут, не работает. Диод просто светится. В правильности железной сборки уверен потому что программа демка от другого компилятора заработала. Но в ней еще менее понятно чем в мплаб и инфы по нему никакой
---
Даже в Протеусе этого пика нет
Последний раз редактировалось
Kotto Ср апр 09, 2014 14:26:09, всего редактировалось 1 раз.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.