PIC с нуля

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

а кварц какой на плате стоит? Может надо #pragma config FOSC=XT.
Реклама
Опытный кот
Аватара пользователя
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск

Сообщение Kotto »

Кварц левый какой то, поставил что было, на 4,5 МГц, грешил на него пока не залил прогу с того не понятного компилятора и она заработала. Значит с железом все норм. Но попробую сейчас XT
Контактная информация:
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

Хекс сбросьте сюда. С задержкой 1000.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск

Сообщение Kotto »

#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 байт) 249 скачиваний
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Аватара пользователя
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск

Сообщение Kotto »

while (1)
{
diod = 1;
__delay_ms (1000);
diod = 0;
__delay_ms (1000);
}
PIC16F72.X.production.rar
(263 байт) 253 скачивания
Контактная информация:
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Сообщение oleg110592 »

"залил" свой hex в протеус, в PIC16F877 (нет там PIC16F72). Думал не будет работать, а работает - на ноге RA0 есть мигание. Должно бы и в железе работать.
Реклама
Опытный кот
Аватара пользователя
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск

Сообщение Kotto »

ну не работает и все тут, хоть что делай. А вот этот хекс
111.hex
(509 байт) 469 скачиваний
работает. Он другим компилятором создан как демка, PCW


Я свой хекс залил в 877й на протеусе, работает :))) В железе нет :cry:
Контактная информация:
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

Дизассемблировал 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 секунда. Должно работать.
Значит надо проверять инициализацию портов. Может там что-то не то.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

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

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

oleg110592 писал(а): Может надо #pragma config FOSC=XT.
От 4МГц и выше - HS ...
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку

Сообщение Zhuk72 »

Попробуйте этот хекс:
F72_test.X.production.rar
(233 байт) 234 скачивания
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Контактная информация:
Опытный кот
Аватара пользователя
Сообщения: 795
Зарегистрирован: Чт ноя 08, 2012 22:28:05
Откуда: Ижевск

Сообщение Kotto »

Все, доигрался ) умер программатор :cry: Поток глупых вопросов приостановлю до починки )
Контактная информация:
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 22
Зарегистрирован: Сб окт 30, 2010 09:31:51

Сообщение Rediska »

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

Изображение

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

Изображение

Добавлено after 5 minutes 43 seconds:
UPD: Разобрался немного, ногу надо перенастроить, она идёт как ADC, а чтобы работала на выход, надо сбросить бит ANSEL:ANS0. Однако, вопроса, почему работает в железе и не работает в симуляторе это не снимает.
бит ANSEL:ANS4 не влияет на работу ноги RA4, а ANSEL:ANS0 переключает ногу в аналоговый режим и она перестаёт реагировать в симуляторе.
Нашел транзистор. Понюхал.
Сообщения: 158
Зарегистрирован: Сб апр 24, 2021 18:42:11

Сообщение phalanx »

[uquote="Rediska",url="/forum/viewtopic.php?p=4223235#p4223235"]...Однако, вопроса, почему работает в железе и не работает в симуляторе это не снимает...[/uquote]
Мля, а такое простое допущение, что Ваш симулятор полная ху@та, Вам в голову не приходило??? Вам, если-бы Вы хоть что-то умели, я порекомендовал-бы "Страничку Пиза" почитать. И на кой хрен Вы здесь выкладываете свой вольный перевод официальной документации? Полагаете, что кому-то пригодится? Все там работает, как написано, у всех, кроме, разумеется, Вас.
Первый раз сказал Мяу!
Аватара пользователя
Сообщения: 22
Зарегистрирован: Сб окт 30, 2010 09:31:51

Сообщение Rediska »

[uquote="phalanx",url="/forum/viewtopic.php?p=4223495#p4223495"][uquote="Rediska",url="/forum/viewtopic.php?p=4223235#p4223235"]...Однако, вопроса, почему работает в железе и не работает в симуляторе это не снимает...[/uquote]
Мля, а такое простое допущение, что Ваш симулятор полная ху@та, Вам в голову не приходило??? Вам, если-бы Вы хоть что-то умели, я порекомендовал-бы "Страничку Пиза" почитать. И на кой хрен Вы здесь выкладываете свой вольный перевод официальной документации? Полагаете, что кому-то пригодится? Все там работает, как написано, у всех, кроме, разумеется, Вас.[/uquote]

Нервы проще беречь, чем кнопки давить с такой ненавистью.
Симулятор самый что ни на есть трушный из доступных, MPLAB X, трушнее уже некуда.
Про перевод вообще непонятно, о чём вы тут испражняетесь.
Мне пригодится, и тема вроде как новичковая, откуда столько прыти, непонятно.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 362
Зарегистрирован: Вс апр 03, 2022 07:01:29

Сообщение НовыйДень »

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

Вернуться в «PIC»