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

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

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

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

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

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


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

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

индюк, про asm {} уже было
Реклама:
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
mike-y-k вне форума  
Непрочитано 22.08.2022, 16:53  
индюк
Гуру портала
 
Аватар для индюк
 
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,660
Сказал спасибо: 185
Сказали Спасибо 3,183 раз(а) в 2,063 сообщении(ях)
индюк на пути к лучшему
По умолчанию 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
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,169
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
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
Адрес: мурмурляндия
Сообщений: 10,660
Сказал спасибо: 185
Сказали Спасибо 3,183 раз(а) в 2,063 сообщении(ях)
индюк на пути к лучшему
По умолчанию 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
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,169
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
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.RU
 
Аватар для 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.RU
 
Регистрация: 10.06.2010
Сообщений: 598
Сказал спасибо: 222
Сказали Спасибо 234 раз(а) в 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
Сказал спасибо: 253
Сказали Спасибо 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, время: 20:30.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot