Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

MPLAB 8. Работа с указателями.

Непрочитано 22.08.2022, 16:39  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,284
Сказал спасибо: 11,860
Сказали Спасибо 4,159 раз(а) в 3,177 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: MPLAB 8. Работа с указателями.

Alpout, а Ваш целевой МК случайно не поддерживает обмен с портом словами? Это сразу решит вопрос с побайтным обменом, останется лишь понять правильность последовательности байт (Big/Little endian)

индюк, про asm {} уже было
Реклама:
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 22.08.2022, 16:53  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,130
Сказал спасибо: 202
Сказали Спасибо 3,285 раз(а) в 2,151 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: MPLAB 8. Работа с указателями.

Сообщение от mike-y-k Посмотреть сообщение
индюк, про asm {} уже было
memset в асме?
не, не знал..........
__________________
кагмаподэ магмаподэ
индюк вне форума  
Непрочитано 22.08.2022, 17:53  
Alpout
Прописка
 
Аватар для Alpout
 
Регистрация: 13.09.2011
Адрес: Уфа
Сообщений: 253
Сказал спасибо: 20
Сказали Спасибо 19 раз(а) в 14 сообщении(ях)
Alpout на пути к лучшему
По умолчанию Re: MPLAB 8. Работа с указателями.

Я хотел не через порт передать, а сохранять в собственном eeprom числа integer и float. То есть включается прибор(с МК), проводятся какие то операции, потом измененные числа хранятся в EEPROM. Я думал через указатель делать, в программировании не профи, составляю на ходу изучая документации, книжки...Микроконтроллер выбрал PIC16F887.
Alpout вне форума  
Непрочитано 22.08.2022, 18:43  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,284
Сказал спасибо: 11,860
Сказали Спасибо 4,159 раз(а) в 3,177 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: MPLAB 8. Работа с указателями.

Alpout, тогда все данные для EEPROM вынесите в структуру и гоняйте ее содержимое целиком, заодно таки прочитайте про систему команд процессора и организацию работы с внутренней памятью, чтобы понимать как оно происходит на физическом уровне…
Это сильно поможет в программировании…
Ну и про возможности оператора asm прочитайте уже для C в MPLAB - так можно спокойно вставлять цепочки машинных команд. Средства языка бывает делают это не самым оптимальным образом…
В среде можно всегда указать вывод листинга ассемблера и по нему понимать превращение строк кода на C в исполняемые команды…
Иногда помогает найти ошибки в своем понимании происходящего в программе, особенно в начале пути…

PS На тему сохранения в EEPROM - почитайте про ресурс в циклах записи для конкретного процессора и определите частоту Ваших операций записи туда…
Бывают ситуации преждевременной смерти этой памяти от излишнего упорства в записи туда каждого чиха…
Для таких ситуаций предпочтительнее внешний модуль - заменить сильно проще, да и со скоростью и ресурсом получше (например FRAM)…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…

Последний раз редактировалось mike-y-k; 22.08.2022 в 18:48.
mike-y-k вне форума  
Непрочитано 22.08.2022, 19:31  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 11,130
Сказал спасибо: 202
Сказали Спасибо 3,285 раз(а) в 2,151 сообщении(ях)
индюк на пути к лучшему
По умолчанию Re: MPLAB 8. Работа с указателями.

Сообщение от mike-y-k Посмотреть сообщение
В среде можно всегда указать вывод листинга ассемблера и по нему понимать превращение строк кода на C в исполняемые команды…
Иногда помогает найти ошибки в своем понимании происходящего в программе, особенно в начале пути…
это вы уже какуюто фантастику описываете - такое умели в 90х годах но не щас))) щас этим людям уже лет по 65-75 и они не пишут не читают.......))))
__________________
кагмаподэ магмаподэ
индюк вне форума  
Сказали "Спасибо" индюк
Alpout (23.08.2022)
Непрочитано 22.08.2022, 19:58  
mike-y-k
Модератор
 
Регистрация: 04.08.2010
Адрес: Москва СЗАО/МО
Сообщений: 12,284
Сказал спасибо: 11,860
Сказали Спасибо 4,159 раз(а) в 3,177 сообщении(ях)
mike-y-k на пути к лучшему
По умолчанию Re: MPLAB 8. Работа с указателями.

индюк, ну таки я сам как-то из них, помню еще методы набора и исправления программ по кодам в листинге…
Всем советую, некоторые воспринимают и потом говорят спасибо…
С таким подходом и новая система команд, и сам процессор уже не кажутся сильно сложными в освоении, да и документация переваривается сильно быстрее и полнее…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Сказали "Спасибо" mike-y-k
Alpout (23.08.2022)
Непрочитано 22.08.2022, 21:06  
vavan1983
Почётный гражданин KAZUS.RUN
 
Аватар для vavan1983
 
Регистрация: 26.12.2007
Сообщений: 1,198
Сказал спасибо: 70
Сказали Спасибо 80 раз(а) в 69 сообщении(ях)
vavan1983 на пути к лучшему
По умолчанию Re: MPLAB 8. Работа с указателями.

Сообщение от Alpout Посмотреть сообщение
Я хотел не через порт передать, а сохранять в собственном eeprom числа integer и float. То есть включается прибор(с МК), проводятся какие то операции, потом измененные числа хранятся в EEPROM. Я думал через указатель делать, в программировании не профи, составляю на ходу изучая документации, книжки...Микроконтроллер выбрал PIC16F887.
Используйте союз UNION это просто и наглядно.
vavan1983 вне форума  
Сказали "Спасибо" vavan1983
Alpout (23.08.2022)
Непрочитано 23.08.2022, 08:00  
Alpout
Прописка
 
Аватар для Alpout
 
Регистрация: 13.09.2011
Адрес: Уфа
Сообщений: 253
Сказал спасибо: 20
Сказали Спасибо 19 раз(а) в 14 сообщении(ях)
Alpout на пути к лучшему
По умолчанию Re: MPLAB 8. Работа с указателями.

Хорошо, понял, спасибо за помощь! В си перешел с ассемблера, понимаю как работает. Микроконтроллеры программирую раз в год, забывается все.
Alpout вне форума  
Непрочитано 23.08.2022, 10:50  
DmitriyVDN
Гражданин KAZUS.RUN
 
Регистрация: 10.06.2010
Сообщений: 598
Сказал спасибо: 224
Сказали Спасибо 235 раз(а) в 154 сообщении(ях)
DmitriyVDN на пути к лучшему
По умолчанию Re: MPLAB 8. Работа с указателями.

Сообщение от Alpout Посмотреть сообщение
Я хотел не через порт передать, а сохранять в собственном eeprom числа integer и float. То есть включается прибор(с МК), проводятся какие то операции, потом измененные числа хранятся в EEPROM. Я думал через указатель делать, в программировании не профи, составляю на ходу изучая документации, книжки...Микроконтроллер выбрал PIC16F887.
что мешает в начале кода определить переменные в EEPROM
Код:
__eeprom int Limit_On = 0x1234;     // 
__eeprom int Limit_Off = 0x5678;     // 
__eeprom int Limit_Complete   =0x0090;
__eeprom float Limit   = 10000.0;
DmitriyVDN вне форума  
Непрочитано 23.08.2022, 12:13  
pt200
Прописка
 
Регистрация: 30.08.2010
Сообщений: 143
Сказал спасибо: 260
Сказали Спасибо 35 раз(а) в 28 сообщении(ях)
pt200 на пути к лучшему
По умолчанию Re: MPLAB 8. Работа с указателями.

Сообщение от Alpout Посмотреть сообщение
Добрый день!
Код:
	temp = 0x4025;	
	u=*p;
	*p++;
    v=*p;
А разве в Сях указатель через разыменование инкрементируется???
Если не ошибаюсь этот код должен инкрементировать младший char в переменной temp, итого:
Код:
u=0х25
v=0х26
temp = 0x4026
Ну а если ошибаюсь(т.е. инкрементирует, но результат игнорирует), то:
Код:
u=0х25
v=0х25
temp = 0x4025

Был не прав: инкремент главнее разыменования(что кстати видно по отладке), тогда кроме странного инкремента претензий к коду больше не имею.

А что происходит в отладке по шагам по асмовому коду?

Последний раз редактировалось pt200; 23.08.2022 в 12:27.
pt200 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование программатором STERH 007 PIC микроконтроллеров ispitatel1 Песочница (вопросы новичков) 4 17.04.2017 17:18
Ищу гуру STM32 (работа за деньги!) xakez ARM 1 07.07.2016 13:44
Работа с указателями Fair88Play Микроконтроллеры, АЦП, память и т.д 11 18.06.2012 13:18
Работа в MPLAB IDE V7.42 Prototup Микроконтроллеры, АЦП, память и т.д 14 29.05.2008 16:39
РАБОТА с MPLAB downkazus Proteus, KiCAD и другие ECAD 10 28.01.2007 13:15


Часовой пояс GMT +4, время: 23:30.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.