Програмирование pic на СИ.

Поклонники продукции Microchip Technology Inc тусуются тут.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

Аlex писал(а):А "*" - взятие значения по указателю.
Или я ошибаюсь ? :)


Ну ссылки же даны ... :)))

Chettuser писал(а):По моему этот код - просто кто то заигрался в указатели. Пишут там где надо и не надо. Современная тенденция или невежество?


Невежество именно , сначала изучи язык не поверхностно - затем обсуждай , что лишнее а что необходимо .
С косвенной адресацией весьма туго, на асме сей механизм не использовал ?
Вот меня прикалывают адепты асма на пЫк, научаться лапкой махать и мнят себя кодерами ... :)))
Последний раз редактировалось dosikus Вс июн 22, 2014 13:00:20, всего редактировалось 1 раз.
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение Аlex »

dosikus писал(а):Ну ссылки же даны ... :)))
Лёх, ты меня решил потроллить чтоли ?
СпойлерИзображение
:facepalm:"
Завязывай, некрасиво со стороны смотрится :)
Вложения
poiners.png
(48.76 КБ) 1118 скачиваний
Chettuser

Re: Програмирование pic на СИ.

Сообщение Chettuser »

Alex, "приведение" типов? :)
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение Аlex »

Chettuser писал(а):Alex, "приведение" типов? :)
Не понял, Вы о чём ?
Chettuser

Re: Програмирование pic на СИ.

Сообщение Chettuser »

Вы ведь про разные типы данных говорили?
Аlex писал(а):принимает значение одного байта, а переменная tmp имеет тип - int.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Програмирование pic на СИ.

Сообщение dosikus »

Аlex писал(а):Завязывай, некрасиво со стороны смотрится :)


Да тебя даже и не думал . :)))
Ну посмотри сам - взятие значения произойдет здесь

Код: Выделить всё

EEPROM_WRITE(1,*p++);

Ибо указатель в роли аргумента функции .
А здесь будет лишь инкремент
и инкремент адреса .
Ты когда тот пример читаешь осознай в качестве чего там указатель, и какие телодвижения с ним совершают ..

А там - просто накипело - Chettuser занялся обрезанием , даже не подумавши .
У него это уже в стиль жизни складывается , взять тот же феерически-дол***ный вывод о излишестве R2R в пЫккит2 ...
Chettuser

Re: Програмирование pic на СИ.

Сообщение Chettuser »

dosikus писал(а):взять тот же феерически-дол***ный вывод о излишестве R2R в пЫккит2 ...

:shock: Я это говорил??? Вы не путаете? :shock:
HHIMERA
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Re: Програмирование pic на СИ.

Сообщение HHIMERA »

Аlex писал(а):
HHIMERA писал(а):*var++ - инкремент адреса
Немного дополню - инкремент адреса с предварительным взятием значения."

Что за наивная привычка спорить... :))) :)))
Просто *var++; - это что???
Кейл, например, var++; может выкинуть, а *var++; - нет... Всё по задаче...
"Я не даю готовых решений, я заставляю думать!"(С)
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение Аlex »

HHIMERA писал(а):Что за наивная привычка спорить... :))) :)))
Что за наивная привычка видеть во всём спор и подковырки ? :)))
Мое дополнение (ещё раз говорю) касается кода ТС'а , дабы он понял суть этого выражения.

HHIMERA писал(а):Просто *var++; - это что???
Просто - ничто - обычный инкремент указателя, ибо вытаскивать значение по нему некуда.
Если речь идёт о выражении в целом, то это - взятие значения с постинкрементом адреса.

Chettuser писал(а):Вы ведь про разные типы данных говорили?
Аlex писал(а):принимает значение одного байта, а переменная tmp имеет тип - int.
Да.
Ну смотрите, функция EEPROM_WRITE вторым параметром принимает значение, размером в 1 байт. А Вам нужно записать 2-х байтовую переменную.
Отсюда вопрос - что Вы будете делать ? Хочется услышать ответ на него, т.к. дальнейшее объяснение будет зависеть от ответа.
Chettuser

Re: Програмирование pic на СИ.

Сообщение Chettuser »

Я бы разбил 2-х байтовую переменную на два байта. И по отдельности записал бы. Как то так. :)
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение Аlex »

Ну вот, тут так же и делается, только через указатель :)
Создаётся указатель на unsigned char (1 байт), присваивается ему адрес int-переменной, затем по этому указателю, инкрементируя его, записывается 2 байта подряд.
Аватара пользователя
arhar
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Сб авг 04, 2012 08:10:23
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение arhar »

Уважаемые коты. Прошу помощи с новым для меня pic12f629.
В двух словах: собрал на макете пик и 4 диода. Написал тупейший hello world, в MplabX (XC8 compiler). Прошивается и через mplabX и через Pickit3 programmer. (да. шью pickit3). Но не стартует хоть ты тресни!
Если зашиваю в МК что то не мое (левые проекты) - все стартует.
Самое непонятное: завожу в протеусе (файл положил во вложение вместе с прошивкой) - все работает.
Ткните меня пожалуйста носом, где я напортачил?
Chettuser

Re: Програмирование pic на СИ.

Сообщение Chettuser »

Дайте угадаю!
1. Конфиг?
2. Инициализация?
Аватара пользователя
arhar
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Сб авг 04, 2012 08:10:23
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение arhar »

Ну если б я знал, не спрашивал наверное? можно поподробнее? я так понял, что есть типичные ошибки новичков. Можете на примере кода указать где я недоперекодил?
Последний раз редактировалось AlekseyEnergo Вт авг 26, 2014 23:16:47, всего редактировалось 1 раз.
Причина: Нарушение пункта 2.7. Подредактировал. Предупредил!!
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение Аlex »

Попробуйте залить эту прошивку -
test.X.production.hex
(6.39 КБ) 402 скачивания

если заработает, значит программатор у Вас не выставляет сам калибровочную константу. В MPLAB, в настройках программатора есть что-то подобное.
Аватара пользователя
arhar
Нашел транзистор. Понюхал.
Сообщения: 171
Зарегистрирован: Сб авг 04, 2012 08:10:23
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение arhar »

Аlex писал(а):Попробуйте залить эту прошивку - ...


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

Re: Програмирование pic на СИ.

Сообщение dosikus »

arhar писал(а):
Все оказалось прозаичней и банальней... битый проц.


Все еще проще и банальней - стертая калибровочная константа при использовании INTRC ... :)))
Аватара пользователя
Stepa-Kunitia
Открыл глаза
Сообщения: 46
Зарегистрирован: Вт июл 22, 2008 10:24:02
Откуда: Москва

Re: Програмирование pic на СИ.

Сообщение Stepa-Kunitia »

Здравствуйте.
Скорее всего, вопрос у меня очень глупый, но всё же..
В чём разница между компилляторми С30 и ХС16? Будет ли различаться синтаксис?
Суперхрабрость-это бежать навстречу поезду и кричать "Задавлю!!!"
Аватара пользователя
Сем30
Открыл глаза
Сообщения: 68
Зарегистрирован: Чт июн 12, 2014 05:32:20

Re: Програмирование pic на СИ.

Сообщение Сем30 »

Прошу помощи с установкой компилятора си в старый mplab 8.3 Установил PICC Compiler 9.50 как там написано добывил информацию в реестр и т.д.

вобщем пишу программу:

#include <pic.h>

__CONFIG (INTIO & UNPROTECT & LVPDIS & BOREN & MCLRDIS & PWRTEN & WDTDIS);

void main (void)
{
}

и компилятор пишет:

Executing: "C:\Program Files\HI-TECH Software\PICC\9.50\bin\picc.exe" -C -E"Test.cce" "Test.c" -O"Test.obj" -Zg9 -O -ASMLIST -Q -MPLAB -16F628A
Error[1187] : invalid activation request
Halting build on first failure as requested.
BUILD FAILED: Tue Nov 04 12:36:21 2014

что можно сделать чтоб он заработал?
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: Програмирование pic на СИ.

Сообщение Аlex »

Установите XC8, это тот же HI-TECH, только с активацией проблем нет никаких. Без лекарства работает в режиме FREE, что для начала вполне достаточно.
Ответить

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