Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Re: PIC с нуля

Ср апр 09, 2014 14:26:01

а кварц какой на плате стоит? Может надо #pragma config FOSC=XT.

Re: PIC с нуля

Ср апр 09, 2014 14:30:22

Кварц левый какой то, поставил что было, на 4,5 МГц, грешил на него пока не залил прогу с того не понятного компилятора и она заработала. Значит с железом все норм. Но попробую сейчас XT

Re: PIC с нуля

Ср апр 09, 2014 14:45:19

Хекс сбросьте сюда. С задержкой 1000.

Re: PIC с нуля

Ср апр 09, 2014 14:47:42

#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);
}
}

Вот программка

А вот хекс
PIC16F72.X.production.rar
(245 байт) Скачиваний: 212

Re: PIC с нуля

Ср апр 09, 2014 14:49:52

while (1)
{
diod = 1;
__delay_ms (1000);
diod = 0;
__delay_ms (1000);
}

PIC16F72.X.production.rar
(263 байт) Скачиваний: 209

Re: PIC с нуля

Ср апр 09, 2014 15:04:29

"залил" свой hex в протеус, в PIC16F877 (нет там PIC16F72). Думал не будет работать, а работает - на ноге RA0 есть мигание. Должно бы и в железе работать.

Re: PIC с нуля

Ср апр 09, 2014 15:16:02

ну не работает и все тут, хоть что делай. А вот этот хекс
111.hex
(509 байт) Скачиваний: 431

работает. Он другим компилятором создан как демка, PCW


Я свой хекс залил в 877й на протеусе, работает :))) В железе нет :cry:

Re: PIC с нуля

Ср апр 09, 2014 15:24:40

Дизассемблировал 2-й хекс (который 263 байта), после обработки получилось такое (мигающий кусок):
Спойлер
Код:
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 секунда. Должно работать.
Значит надо проверять инициализацию портов. Может там что-то не то.

Re: PIC с нуля

Ср апр 09, 2014 16:11:20

Zhuk72 писал(а):то хорошо, признаюсь, что я выразился неоднозначно. Какая разница как выразиться.


— Вот потому, что вы говорите то, что не думаете и думаете то, что не думаете,
(с)

Этот не придирки , в технике не может быть неоднозначности ...


oleg110592 писал(а): Может надо #pragma config FOSC=XT.

От 4МГц и выше - HS ...

Re: PIC с нуля

Ср апр 09, 2014 16:19:27

Попробуйте этот хекс:
F72_test.X.production.rar
(233 байт) Скачиваний: 190

Re: PIC с нуля

Ср апр 09, 2014 19:45:38

Все, доигрался ) умер программатор :cry: Поток глупых вопросов приостановлю до починки )

Re: PIC с нуля

Чт апр 28, 2022 10:41:14

Почему в дебаге не переключается ножка RA0? Простейший код, в железе работает (PIC16F886), а в дебаге как ни тыркаюсь, состояние выхода не меняется
Делеи закамментил, чтоб не мешали дебагом щёлкать.

Изображение

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

Изображение

Добавлено after 5 minutes 43 seconds:
UPD: Разобрался немного, ногу надо перенастроить, она идёт как ADC, а чтобы работала на выход, надо сбросить бит ANSEL:ANS0. Однако, вопроса, почему работает в железе и не работает в симуляторе это не снимает.
бит ANSEL:ANS4 не влияет на работу ноги RA4, а ANSEL:ANS0 переключает ногу в аналоговый режим и она перестаёт реагировать в симуляторе.

Re: PIC с нуля

Чт апр 28, 2022 18:23:26

...Однако, вопроса, почему работает в железе и не работает в симуляторе это не снимает...

Мля, а такое простое допущение, что Ваш симулятор полная ху@та, Вам в голову не приходило??? Вам, если-бы Вы хоть что-то умели, я порекомендовал-бы "Страничку Пиза" почитать. И на кой хрен Вы здесь выкладываете свой вольный перевод официальной документации? Полагаете, что кому-то пригодится? Все там работает, как написано, у всех, кроме, разумеется, Вас.

Re: PIC с нуля

Чт апр 28, 2022 18:58:31

...Однако, вопроса, почему работает в железе и не работает в симуляторе это не снимает...

Мля, а такое простое допущение, что Ваш симулятор полная ху@та, Вам в голову не приходило??? Вам, если-бы Вы хоть что-то умели, я порекомендовал-бы "Страничку Пиза" почитать. И на кой хрен Вы здесь выкладываете свой вольный перевод официальной документации? Полагаете, что кому-то пригодится? Все там работает, как написано, у всех, кроме, разумеется, Вас.


Нервы проще беречь, чем кнопки давить с такой ненавистью.
Симулятор самый что ни на есть трушный из доступных, MPLAB X, трушнее уже некуда.
Про перевод вообще непонятно, о чём вы тут испражняетесь.
Мне пригодится, и тема вроде как новичковая, откуда столько прыти, непонятно.

Re: PIC с нуля

Чт апр 28, 2022 19:05:55

почему работает в железе и не работает в симуляторе это не снимает

Насколько помню (давно то было, лет 10 назад), и в железе тоже будет некорректно работать, не во всех случаях правильно.
По крайней мере, симулятор (связка MPLab и Proteus) в принципе то довольно точно показывал поведение микроконтроллра, за исключением тех ограничений, которые были описаны в мануале к нему. И чаще случалось наоборот - в симуляторе работает, а в железе - как-то не так. Но и то редко.
Последний раз редактировалось НовыйДень Чт апр 28, 2022 19:08:49, всего редактировалось 1 раз.
Ответить