PIC с нуля
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: PIC с нуля
а кварц какой на плате стоит? Может надо #pragma config FOSC=XT.
- Kotto
- Опытный кот
- Сообщения: 795
- Зарегистрирован: Чт ноя 08, 2012 22:28:05
- Откуда: Ижевск
- Контактная информация:
Re: PIC с нуля
Кварц левый какой то, поставил что было, на 4,5 МГц, грешил на него пока не залил прогу с того не понятного компилятора и она заработала. Значит с железом все норм. Но попробую сейчас XT
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: PIC с нуля
Хекс сбросьте сюда. С задержкой 1000.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
- Kotto
- Опытный кот
- Сообщения: 795
- Зарегистрирован: Чт ноя 08, 2012 22:28:05
- Откуда: Ижевск
- Контактная информация:
Re: PIC с нуля
#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 BOREN=ON
#pragma config WDTE=OFF
#pragma config PWRTE=ON
#pragma config FOSC=HS
#define knopka RB4
#define diod RB0
void podgot (void)
{
ADCON1 = 0b00000110;
TRISA = 0b00000000;
TRISB = 0b00010000;
PORTA = 0;
PORTB = 0;
nRBPU = 0;
}
void main (void)
{
podgot ();
while (1)
{
diod = 1;
_delay (1000);
diod = 0;
_delay (1000);
}
}
Вот программка
А вот хекс
#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 BOREN=ON
#pragma config WDTE=OFF
#pragma config PWRTE=ON
#pragma config FOSC=HS
#define knopka RB4
#define diod RB0
void podgot (void)
{
ADCON1 = 0b00000110;
TRISA = 0b00000000;
TRISB = 0b00010000;
PORTA = 0;
PORTB = 0;
nRBPU = 0;
}
void main (void)
{
podgot ();
while (1)
{
diod = 1;
_delay (1000);
diod = 0;
_delay (1000);
}
}
Вот программка
А вот хекс
- Kotto
- Опытный кот
- Сообщения: 795
- Зарегистрирован: Чт ноя 08, 2012 22:28:05
- Откуда: Ижевск
- Контактная информация:
Re: PIC с нуля
while (1)
{
diod = 1;
__delay_ms (1000);
diod = 0;
__delay_ms (1000);
}
{
diod = 1;
__delay_ms (1000);
diod = 0;
__delay_ms (1000);
}
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: PIC с нуля
"залил" свой hex в протеус, в PIC16F877 (нет там PIC16F72). Думал не будет работать, а работает - на ноге RA0 есть мигание. Должно бы и в железе работать.
- Kotto
- Опытный кот
- Сообщения: 795
- Зарегистрирован: Чт ноя 08, 2012 22:28:05
- Откуда: Ижевск
- Контактная информация:
Re: PIC с нуля
ну не работает и все тут, хоть что делай. А вот этот хекс
работает. Он другим компилятором создан как демка, PCW
Я свой хекс залил в 877й на протеусе, работает
В железе нет 
работает. Он другим компилятором создан как демка, PCW
Я свой хекс залил в 877й на протеусе, работает
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: PIC с нуля
Дизассемблировал 2-й хекс (который 263 байта), после обработки получилось такое (мигающий кусок):
Проверил задержку, действительно, 1 секунда. Должно работать.
Значит надо проверять инициализацию портов. Может там что-то не то.
Спойлер
Код: Выделить всё
flash
bsf PORTB,0
call delay
bcf PORTB,0
call delay
goto flash
flash
movlw 0x06 ; .6 ' ' b'00000110'
movwf 0x42
movlw 0x13 ; .19 ' ' b'00010011'
movwf 0x41
movlw 0xB1 ; .177 'Я' b'10110001'
movwf 0x40
loop
decfsz 0x40,F
goto loop
decfsz 0x41,F
goto loop
decfsz 0x42,F
goto loop
returnПроверил задержку, действительно, 1 секунда. Должно работать.
Значит надо проверять инициализацию портов. Может там что-то не то.
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Re: PIC с нуля
Zhuk72 писал(а):то хорошо, признаюсь, что я выразился неоднозначно. Какая разница как выразиться.
(с)— Вот потому, что вы говорите то, что не думаете и думаете то, что не думаете,
Этот не придирки , в технике не может быть неоднозначности ...
oleg110592 писал(а): Может надо #pragma config FOSC=XT.
От 4МГц и выше - HS ...
- Zhuk72
- Сверлит текстолит когтями
- Сообщения: 1231
- Зарегистрирован: Ср янв 29, 2014 08:41:31
- Откуда: Баку
- Контактная информация:
Re: PIC с нуля
Попробуйте этот хекс:
Каждый имеет право на свое личное ошибочное мнение.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
- Kotto
- Опытный кот
- Сообщения: 795
- Зарегистрирован: Чт ноя 08, 2012 22:28:05
- Откуда: Ижевск
- Контактная информация:
Re: PIC с нуля
Все, доигрался ) умер программатор
Поток глупых вопросов приостановлю до починки )
Re: PIC с нуля
Почему в дебаге не переключается ножка RA0? Простейший код, в железе работает (PIC16F886), а в дебаге как ни тыркаюсь, состояние выхода не меняется
Делеи закамментил, чтоб не мешали дебагом щёлкать.

Добавлено after 1 hour 36 seconds:
Переписал чтоб двигалась ещё 4 нога, она работает, а нулевая нет. Видимо, её что-то перекрывает, а вот что, дотумкать не могу. И почему в жизни работает этот hex, а в симуляторе нет?

Добавлено after 5 minutes 43 seconds:
UPD: Разобрался немного, ногу надо перенастроить, она идёт как ADC, а чтобы работала на выход, надо сбросить бит ANSEL:ANS0. Однако, вопроса, почему работает в железе и не работает в симуляторе это не снимает.
бит ANSEL:ANS4 не влияет на работу ноги RA4, а ANSEL:ANS0 переключает ногу в аналоговый режим и она перестаёт реагировать в симуляторе.
Делеи закамментил, чтоб не мешали дебагом щёлкать.
Добавлено after 1 hour 36 seconds:
Переписал чтоб двигалась ещё 4 нога, она работает, а нулевая нет. Видимо, её что-то перекрывает, а вот что, дотумкать не могу. И почему в жизни работает этот hex, а в симуляторе нет?
Добавлено after 5 minutes 43 seconds:
UPD: Разобрался немного, ногу надо перенастроить, она идёт как ADC, а чтобы работала на выход, надо сбросить бит ANSEL:ANS0. Однако, вопроса, почему работает в железе и не работает в симуляторе это не снимает.
бит ANSEL:ANS4 не влияет на работу ноги RA4, а ANSEL:ANS0 переключает ногу в аналоговый режим и она перестаёт реагировать в симуляторе.
Re: PIC с нуля
[uquote="Rediska",url="/forum/viewtopic.php?p=4223235#p4223235"]...Однако, вопроса, почему работает в железе и не работает в симуляторе это не снимает...[/uquote]
Мля, а такое простое допущение, что Ваш симулятор полная ху@та, Вам в голову не приходило??? Вам, если-бы Вы хоть что-то умели, я порекомендовал-бы "Страничку Пиза" почитать. И на кой хрен Вы здесь выкладываете свой вольный перевод официальной документации? Полагаете, что кому-то пригодится? Все там работает, как написано, у всех, кроме, разумеется, Вас.
Мля, а такое простое допущение, что Ваш симулятор полная ху@та, Вам в голову не приходило??? Вам, если-бы Вы хоть что-то умели, я порекомендовал-бы "Страничку Пиза" почитать. И на кой хрен Вы здесь выкладываете свой вольный перевод официальной документации? Полагаете, что кому-то пригодится? Все там работает, как написано, у всех, кроме, разумеется, Вас.
Re: PIC с нуля
[uquote="phalanx",url="/forum/viewtopic.php?p=4223495#p4223495"][uquote="Rediska",url="/forum/viewtopic.php?p=4223235#p4223235"]...Однако, вопроса, почему работает в железе и не работает в симуляторе это не снимает...[/uquote]
Мля, а такое простое допущение, что Ваш симулятор полная ху@та, Вам в голову не приходило??? Вам, если-бы Вы хоть что-то умели, я порекомендовал-бы "Страничку Пиза" почитать. И на кой хрен Вы здесь выкладываете свой вольный перевод официальной документации? Полагаете, что кому-то пригодится? Все там работает, как написано, у всех, кроме, разумеется, Вас.[/uquote]
Нервы проще беречь, чем кнопки давить с такой ненавистью.
Симулятор самый что ни на есть трушный из доступных, MPLAB X, трушнее уже некуда.
Про перевод вообще непонятно, о чём вы тут испражняетесь.
Мне пригодится, и тема вроде как новичковая, откуда столько прыти, непонятно.
Мля, а такое простое допущение, что Ваш симулятор полная ху@та, Вам в голову не приходило??? Вам, если-бы Вы хоть что-то умели, я порекомендовал-бы "Страничку Пиза" почитать. И на кой хрен Вы здесь выкладываете свой вольный перевод официальной документации? Полагаете, что кому-то пригодится? Все там работает, как написано, у всех, кроме, разумеется, Вас.[/uquote]
Нервы проще беречь, чем кнопки давить с такой ненавистью.
Симулятор самый что ни на есть трушный из доступных, MPLAB X, трушнее уже некуда.
Про перевод вообще непонятно, о чём вы тут испражняетесь.
Мне пригодится, и тема вроде как новичковая, откуда столько прыти, непонятно.
Re: PIC с нуля
Насколько помню (давно то было, лет 10 назад), и в железе тоже будет некорректно работать, не во всех случаях правильно.почему работает в железе и не работает в симуляторе это не снимает
По крайней мере, симулятор (связка MPLab и Proteus) в принципе то довольно точно показывал поведение микроконтроллра, за исключением тех ограничений, которые были описаны в мануале к нему. И чаще случалось наоборот - в симуляторе работает, а в железе - как-то не так. Но и то редко.
Последний раз редактировалось НовыйДень Чт апр 28, 2022 19:08:49, всего редактировалось 1 раз.