Например TDA7294

Форум РадиоКот • Просмотр темы - Програмирование pic на СИ.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пн авг 11, 2025 00:46:01

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 1364 ]     ... , , , 63, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс сен 10, 2023 16:33:42 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 3
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Сообщений: 158
Откуда: не с Уфы
Рейтинг сообщения: 0
Может лучше вот так:

volatile const R1 __at(0x18D0) = 0x00AA;

EEADR = (uint8_t)(R1);
EEADRH = (uint8_t)(R1 >> 8);


а что здесь "лучше"....... volatile? - это никак не влияет. Что касается следующих строк...... речь же не шла о содержимом....

Ну это ладно ..... я же в принципе обратился, думал что с таким давно уже народ сталкивался ....... и есть какое-то объяснение такого поведения, но ......


А что касается результатов моих исследований, почему именно так себя ведет 1.33 с 16f88x (с 12F1572 например все нормально в аналогичной ситуации) я не знаю, да и честно говоря не хочу тратить слишком много времени выясняя это, поскольку эта "проблема" легко обходится - достаточно просто чтобы была хоть одна константа с абсолютным размещением, скажем по последнему адресу (для 886)
Код:
const uint8_t R1 @0x1FFF;
и тогда феномен исчезает.

_________________
Tg


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс сен 10, 2023 16:53:59 
Встал на лапы

Карма: -10
Рейтинг сообщений: -76
Зарегистрирован: Пт мар 29, 2013 23:53:14
Сообщений: 84
Рейтинг сообщения: 0
Может лучше вот так:

volatile const R1 __at(0x18D0) = 0x00AA;

EEADR = (uint8_t)(R1);
EEADRH = (uint8_t)(R1 >> 8);


а что здесь "лучше"....... volatile? - это никак не влияет. Что касается следующих строк...... речь же не шла о содержимом....

Ну это ладно ..... я же в принципе обратился, думал что с таким давно уже народ сталкивался ....... и есть какое-то объяснение такого поведения, но ......


А что касается результатов моих исследований, почему именно так себя ведет 1.33 с 16f88x (с 12F1572 например все нормально в аналогичной ситуации) я не знаю, да и честно говоря не хочу тратить слишком много времени выясняя это, поскольку эта "проблема" легко обходится - достаточно просто чтобы была хоть одна константа с абсолютным размещением, скажем по последнему адресу (для 886)
Код:
const uint8_t R1 @0x1FFF;
и тогда феномен исчезает.


volatile влияет на то, что если ты не используешь данный регистр, то при оптимизации 3, и при НЕиспользовании - ХС8 его просто проигнорирует :) не включит в проект.

Для остальных оптимизаций - это не имеет значения.

Так а в чём проблема ?

До сих пор значения адреса EEPROM не соответствуют той константе ?


Последний раз редактировалось ALEKS1102X Вс сен 10, 2023 17:00:25, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс сен 10, 2023 17:00:44 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23964
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
а вот следующая команда - это НЕЧТО!
В восьмибитный байт "ADRESH" загрузить 16-ти битную пародию .... константы, которая уже закончилась (она была восьмибитной) ... да там вообще не читаемо ....

:))) Вообще то в ADRESH грузится старший байт АДРЕСА константы, а не константа... Ты в курсе что означает в Си амперсанд?
Немного может не в тему, но чем отличается "@" и "__at() :
Я не уверен, что просто объявив адрес напрямую "@" - после компиляции - проц запустится ?!?
Просто к примеру, в том месте ПЗУ на данный момент находилась уже прошивка (некий код, который туда кинул ХС8) ...
Вот через "__at" я точно уверен, что МПЛАБ подвинется, а через прямую вставку адреса ... да хер его знает ...

@ и __at ничем друг от друга не отличаются. Символ @ по английски звучит как at.
:tea: :)))
Не надоело писать пургу?
если ты не используешь данный регистр

Вообще то он его использует.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс сен 10, 2023 17:10:55 
Встал на лапы

Карма: -10
Рейтинг сообщений: -76
Зарегистрирован: Пт мар 29, 2013 23:53:14
Сообщений: 84
Рейтинг сообщения: 0
а вот следующая команда - это НЕЧТО!
В восьмибитный байт "ADRESH" загрузить 16-ти битную пародию .... константы, которая уже закончилась (она была восьмибитной) ... да там вообще не читаемо ....

:))) Вообще то в ADRESH грузится старший байт АДРЕСА константы, а не константа... Ты в курсе что означает в Си амперсанд?
Немного может не в тему, но чем отличается "@" и "__at() :
Я не уверен, что просто объявив адрес напрямую "@" - после компиляции - проц запустится ?!?
Просто к примеру, в том месте ПЗУ на данный момент находилась уже прошивка (некий код, который туда кинул ХС8) ...
Вот через "__at" я точно уверен, что МПЛАБ подвинется, а через прямую вставку адреса ... да хер его знает ...

@ и __at ничем друг от друга не отличаются. Символ @ по английски звучит как at.
:tea: :)))
Не надоело писать пургу?
если ты не используешь данный регистр

Вообще то он его использует.



__at ... вообще-то у Микрочип -это : "attribute", и можно посмотреть это в справочнике по MPLABX, а значёк @ по системе ASCII = 0x40.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс сен 10, 2023 17:17:44 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23964
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
__at ... вообще-то у Микрочип -это : "attribute"

Это твоя разнузданная фантазия. Спецификатор attribute никакого отношения к at не имеет.
а значёк @ по системе ASCII = 0x40.

И что из этого следует? Причем тут ASCII код символа?
ЗЫ. В русском языке слово "значок" пишется через "о". Учи русский язык, прежде чем писать всякую пургу... :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс сен 10, 2023 17:29:40 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 3
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Сообщений: 158
Откуда: не с Уфы
Рейтинг сообщения: 0
:))) :))) :)))
скажем так, прошлые страницы тоже нехило так позабавили, но нынче прям до слёз......

_________________
Tg


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вт сен 19, 2023 13:18:33 
Встал на лапы

Карма: -10
Рейтинг сообщений: -76
Зарегистрирован: Пт мар 29, 2013 23:53:14
Сообщений: 84
Рейтинг сообщения: -4
:))) :))) :)))
скажем так, прошлые страницы тоже нехило так позабавили, но нынче прям до слёз......


Ну что? вдоволь позабавились по поводу "Ё" и "о" ?
Ну тогда давайте разберём - что такое в пик16 - программная память :)
Адресация команд урезанная, всего 14 бит из 16-ти, полноценного перехода (линейного) по адресу нету :)
Табличного чтения НЕТ, а значит - можно уйти по некоему адресу, и вернуться оттуда - только если там будет команда "RETLW".
Обычно - это и выполняется в этих процах.
Естестевенно - ни ПИСАТЬ, ни ЧИТАТЬ таблично FLASH - этих процев невозможно!

Теперь давай посмотрим на запись:

//xc8
const uint8_t R1 @0x18D0=0xAA;
EEADR=(uint8_t)&R1;
EEADRH=((uint16_t)&R1)>>8;

константа адреса, которая равна 0xAA, ну ладно, с этим можно смириться, как и с тем, что САМ указав константу адреса - после (во второй строке) хочет её считать :) ...
Но третья строка: от значения 8 бит - сделать 16-надцать бит (ДОЛБНЮ понятно - что это НОЛЬ). что бы потом разместить в старший адрес :)

Здесь на форуме есть кто-нибудь, кто скажет - что такое пишут только после третьего тазика водки? или всем всё нравится ?

Ну и наконец последнее: а стесняюсь спросить - а что эти действия дают в плане прошивки?
ПОЛНОЕ значение из ПЗУ не считаешь - возможности данной серии камней не позволяют, записать тоже нельзя ...
Зачем знать адрес той ячейки, в которой разместил команду:
RETLW 0xxx ???
Ты её и так сохранил в качестве:
const uint8_t R1 &(0x18D0) = 0xAA;

Сам говорил что предпочитаешь правду, но ведёшься на другие правды :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вт сен 19, 2023 14:02:38 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 450
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1642
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
В других компиляторах (CCS), в другом языке (C) есть доступ для чтения и записи в память программы. Не знаю как делает, но функции есть и за рассматриваемого МК.

Из Help:
Код:
write_program_memory( address, dataptr, count);
Function: Writes count bytes to program memory from dataptr to address.

read_program_memory( )
Function: Reads count bytes from program memory at address to RAM at dataptr.

---
Если поможет, фрагмент из файла .lst:
(для меня ASM: незнакомая часть)
Код:
.................... write_program_memory(0x18D0, 0xAA, 1);
0089:  MOVLW  18
008A:  MOVWF  0F
008B:  MOVLW  D0
008C:  MOVWF  0D
008D:  MOVLW  AA
008E:  MOVWF  04
008F:  BCF    03.7
0090:  MOVLW  01
0091:  BCF    03.6
0092:  MOVWF  21


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вт сен 19, 2023 14:21:48 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23964
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
ЧИТАТЬ таблично FLASH - этих процев невозможно!

:))) :))) :)))
Я чувствую, что тебе не надоело быть клоуном...
Открываем даташит и внезапно видим:

Изображение Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вт сен 19, 2023 20:21:49 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 3
Рейтинг сообщений: 21
Зарегистрирован: Чт ноя 26, 2015 23:22:35
Сообщений: 158
Откуда: не с Уфы
Рейтинг сообщения: 0
Теперь давай посмотрим на запись:

//xc8
const uint8_t R1 @0x18D0=0xAA;
EEADR=(uint8_t)&R1;
EEADRH=((uint16_t)&R1)>>8;

константа адреса, которая равна 0xAA, ну ладно, с этим можно смириться, как и с тем, что САМ указав константу адреса - после (во второй строке) хочет её считать :) ...
Но третья строка: от значения 8 бит - сделать 16-надцать бит (ДОЛБНЮ понятно - что это НОЛЬ). что бы потом разместить в старший адрес :)

Вложение:
2023-09-19_221528.jpg [53.86 KiB]
Скачиваний: 59

_________________
Tg


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср сен 20, 2023 05:52:10 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт фев 28, 2017 08:13:31
Сообщений: 41
Откуда: Свердловская обл.
Рейтинг сообщения: 0
Давайте по порядку по поводу "правды" (лично для ALEKS1102X-а)

Повторим суть вопроса - "Родэрик" указал что при команде

const uint8_t R1 = 0xAA;

неправильно вычисляется адрес константы на PIC16F886 !

EEADR=(uint8_t)&R1;
EEADRH=((uint16_t)&R1)>>8;

// в данном случае &R1 - адрес R1 ( !! 16 бит )
// загружаем младший и старший байт адреса
// в переменные EEADR , EEADRH

скорее всего планируется работа с данной "константой"
// а почему нет? если знаем адрес, то можно и изменить!


в случае PIC12F1572 - работает - адрес вычисляется правильно


в случае когда задаём адрес напрямую - то всё работает

const uint8_t R1 @0x18D0=0xAA;

а также работает комбинация

const uint8_t R1 = 0xAA;
const uint8_t R2 @0x1FFF;

----------

смоделировал данную ситуацию
MPLABX 6.05 + XC8 2.41
pic16f690 ( как аналог по коду pic16f886 )
pic16f1827 ( как аналог по коду pic12f1572 )
// пустая программа и

1) const uint8_t R1 = 0xAA;

2) const uint8_t R1 __at(0x800) = 0xAA;

3) const uint8_t R1 = 0xAA;
const uint8_t R2 __at(0x800);


EEADR=(uint8_t)&R1;
EEADRH=((uint16_t)&R1)>>8;

// xc8 2.41 - не знает @

----------
и удивительно - проблема есть для pic16f690!
в листинге всё прекрасно видно что делает компилятор

для записи в память программ константы всегда используется RETLW

1. для pic16f690 получилось что R1
разместился по адресу 0x0007
а адрес назначается 0x8001

для pic16f1827 получилось что R1
разместился по адресу 0x0800
а адрес назначается 0x8800

2. для pic16f690 получилось что R1
разместился по адресу 0x0800
а адрес назначается 0x0800

для pic16f1827 получилось что R1
разместился по адресу 0x0800
а адрес назначается 0x0800

3. для pic16f690 получилось что R1
разместился по адресу 0x0908
а адрес назначается 0x8908
R2 разместился по адресу 0x0800

для pic16f1827 получилось что R1
разместился по адресу 0x0801
а адрес назначается 0x8801
R2 разместился по адресу 0x0800


для расширенной серии pic12f1xxx - pic16f1xxx
есть мапирование памяти программ на память озу с адреса 0x8000
(только младшие байты памяти программ)

используя указатели можно читать таблицы очень быстро
поэтому назначаемый адрес и входит в диапазон 0x8xxx
и сегмент stringX - организуется правильно

для обычных pic16 - xc8 переклинивает и адрес неверно расчитывается

если адрес явно задан для константы или
есть хотя бы одна константа с явным адресом
то сегменты srtringX назначаются правильно

старший бит15 в данном случае - неважен,
так как при записи в EEADRH - отбрасывается

данные манипуляции нужны только для изменения константы
// вычисляем адрес и записываем стандартным алгоритмом
// новые данные по этому адресу


---------- дополнительно ----------

для pic16f1xxx команда
EEADR = &R1
правильно запишет 16 бит адрес в старший и младший байт
команда
EEADR=(uint8_t)&R1;
также пишет 16 бит адрес, игнорируя приведение типа


Последний раз редактировалось Zikon Ср сен 20, 2023 06:37:20, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср сен 20, 2023 06:34:45 
Друг Кота

Карма: 67
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
забавно. куча приведений типов... наверное, надо. но почему-то если
Цитата:
EEADR=(uint8_t)&R1;
то
Цитата:
EEADRH=((uint16_t)&R1)>>8;
не
Код:
EEADRH=(uint8_t)(((uint16_t)&R1)>>8);

У меня иногда создаётся впечатление, что приведения вставляются бездумно, и мне кажется, что иной раз лучше тогда вообще не приводить, положившись на авось, чем делать частичное, которое как бэ намекает, что именно вот так и хотелось, хотя это не так.


Последний раз редактировалось Martian Ср сен 20, 2023 06:50:58, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср сен 20, 2023 06:45:35 
Открыл глаза
Аватар пользователя

Зарегистрирован: Вт фев 28, 2017 08:13:31
Сообщений: 41
Откуда: Свердловская обл.
Рейтинг сообщения: 0
EEADRH=((uint16_t)&R1)>>8;
старший байт отбрасывается и так
и да можно сократить ещё
EEADRH=(&R1)>>8;


для
EEADR=(uint8_t)&R1;
также будет верно
EEADR=&R1;
тоже отбрасывается старший байт

// просто копировал код который указали ранее

Добавлено after 2 minutes 52 seconds:
для pic16f1xxx
EEADR - 16 бит объявлен

а старший и младший байты
EEADRL
EEADRH


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср сен 20, 2023 06:49:14 
Друг Кота

Карма: 67
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
вот и я о том. если мы уверены, что отбрасывается, то не пишем нигде, если не уверены - везде... я просто Вас процитировал, как ближайше написанное (исправил), так-то это сплошь и всюду встречается...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср сен 20, 2023 08:19:26 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23964
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
и удивительно - проблема есть для pic16f690!
в листинге всё прекрасно видно что делает компилятор...
для записи в память программ константы всегда используется RETLW

А что он должен использовать для чипа, в котором нет другого доступа к программному флешу?
Спешу напомнить, что В ЛЮБОМ контроллере доступ к программному флешу не является нативной для Си процедурой. Поэтому в компиляторах используются костыльные для Си спецификаторы, а результат компиляции глубоко аппаратно зависим.
Кстати, спецификатор @ - это от IAR. О чем совершенно определенно сказано в мануале на XC8.
Но вопрос Родэрика был СОВЕРШЕННО О ДРУГОМ. Речь шла о неявном размещении константы линкером.

Добавлено after 2 minutes 36 seconds:
так-то это сплошь и всюду встречается...

А я не парюсь по этому поводу и просто всегда привожу явно. Ведь я не профессиональный программист и откровенно не помню нюансов неявного приведения.

Добавлено after 3 minutes 9 seconds:
и да можно сократить ещё
EEADRH=(&R1)>>8;

Вообще то нельзя. В нормальном компиляторе это вызывает варнинг. EEADRH - это не указатель, а простой регистр и потому константу-указатель нужно привести к простой константе.


Последний раз редактировалось КРАМ Ср сен 20, 2023 09:10:52, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср сен 20, 2023 08:23:20 
Друг Кота

Карма: 67
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
КРАМ, именно поэтому пугаюсь, когда вижу лишь частичное приведение, начинаю подозревать, что так и задумано, а я просто не знаю нюансов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Ср сен 20, 2023 08:34:35 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 450
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1642
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Zikon, попробовал write_program_memory() (в CCS) для 16f690. Функция недоступна.
16F886, 12f1572 - ОК.
Спасибо за инфо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Сб сен 23, 2023 22:30:54 
Встал на лапы

Карма: -10
Рейтинг сообщений: -76
Зарегистрирован: Пт мар 29, 2013 23:53:14
Сообщений: 84
Рейтинг сообщения: 0
и удивительно - проблема есть для pic16f690!
в листинге всё прекрасно видно что делает компилятор...
для записи в память программ константы всегда используется RETLW

А что он должен использовать для чипа, в котором нет другого доступа к программному флешу?
Спешу напомнить, что В ЛЮБОМ контроллере доступ к программному флешу не является нативной для Си процедурой. Поэтому в компиляторах используются костыльные для Си спецификаторы, а результат компиляции глубоко аппаратно зависим.
Кстати, спецификатор @ - это от IAR. О чем совершенно определенно сказано в мануале на XC8.
Но вопрос Родэрика был СОВЕРШЕННО О ДРУГОМ. Речь шла о неявном размещении константы линкером.

Добавлено after 2 minutes 36 seconds:
так-то это сплошь и всюду встречается...

А я не парюсь по этому поводу и просто всегда привожу явно. Ведь я не профессиональный программист и откровенно не помню нюансов неявного приведения.

Добавлено after 3 minutes 9 seconds:
и да можно сократить ещё
EEADRH=(&R1)>>8;

Вообще то нельзя. В нормальном компиляторе это вызывает варнинг. EEADRH - это не указатель, а простой регистр и потому константу-указатель нужно привести к простой константе.


А ты (Вы) напиши это на АСМ :)
А потом будешь выкладывать вырезки из даташита на пик16 :)

PS: я уже давно пик16 использую только для чего-то мелкого, ну типа иммо для авто :)
Серьёзного там ничего не напишешь :)
https://drive.google.com/file/d/1y0nTqb ... drive_link


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс сен 24, 2023 02:26:43 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23964
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
А ты (Вы) напиши это на АСМ

Что "это"? Обращение к флешу через контроллер флеша? Так я привел скрин даташита с текстом на АСМе.
Ты изъясняйся конкретно, а не междометиями...
А потом будешь выкладывать вырезки из даташита на пик16

У тебя есть возражения к даташиту?
я уже давно пик16 использую только для чего-то мелкого, ну типа иммо для авто

Поздравляю. Возьми с полки пирожок.
Понятия мелкий/крупный зависят от соотношения ресурсов контроллера и решаемой задачи. Судя по твоим местным эпистолиям, работать с 8-битным Микрочипом ты можешь на очень начальном уровне. Что не сообщение, то какая то глупость...
Серьёзного там ничего не напишешь

Ты что считаешь "серьезным"?
https://drive.google.com/file/d/бла....бла...бла

Тебе уже писали, чтобы ты не давал тут нерасшаренных ссылок. Никому нах не облокотилось делать запросы для чтения твоих бестолковых нетленок...
И вообще, на этом форуме есть свой хостинг - потрудись использовать его.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Програмирование pic на СИ.
СообщениеДобавлено: Вс сен 24, 2023 10:59:49 
Встал на лапы

Карма: -10
Рейтинг сообщений: -76
Зарегистрирован: Пт мар 29, 2013 23:53:14
Сообщений: 84
Рейтинг сообщения: -3
А ты (Вы) напиши это на АСМ

Что "это"? Обращение к флешу через контроллер флеша? Так я привел скрин даташита с текстом на АСМе.
Ты изъясняйся конкретно, а не междометиями...
А потом будешь выкладывать вырезки из даташита на пик16

У тебя есть возражения к даташиту?
я уже давно пик16 использую только для чего-то мелкого, ну типа иммо для авто

Поздравляю. Возьми с полки пирожок.
Понятия мелкий/крупный зависят от соотношения ресурсов контроллера и решаемой задачи. Судя по твоим местным эпистолиям, работать с 8-битным Микрочипом ты можешь на очень начальном уровне. Что не сообщение, то какая то глупость...
Серьёзного там ничего не напишешь

Ты что считаешь "серьезным"?
https://drive.google.com/file/d/бла....бла...бла

Тебе уже писали, чтобы ты не давал тут нерасшаренных ссылок. Никому нах не облокотилось делать запросы для чтения твоих бестолковых нетленок...
И вообще, на этом форуме есть свой хостинг - потрудись использовать его.



Добрый день!

Написать на "АСМ" я имел ввиду, что если СИ запрещает кому-то пользоваться ВСЕМИ хотелками микроконтроллера, то АСМ все запреты снимает.

Нет, возражений к даташиту нету, просто он рассчитан наверное на расширение функционала этой линейки процев. Они это и сделали в процах, в которых после "16F" стало больше ТРЁХ цифр.
Только ЗАСАДА - она и осталась :) Куча переключений банков ОЗУ, из-за которых, если нужно написать ЧЁТКИЙ-ТОЧНЫЙ тайминг - то не получиться :( нужны вставки на АСМ.
Да ладно вставки, память читать всё равно нет возможности, да и как она появится, если прямой доступ к памяти - это регистры TBLPTRx и TABLAT, а это уже серия пик18.
Да и 14-ти битный адрес к памяти флешь - это тоже "энтузязизма" не добавляет :) ... когда старший адрес может быть только до 0x3F ...
Вот поэтому, и нет смысла читать старший адрес программной памяти :)

Спасибо конечно за пирожок, но я его почему-то не нашёл на той полке, которую Вы не указали :)
В моём понятии - мелкий, это частота не более 8-ми МИпс, памячти почти НОЛЬ, но есть несколько аппаратных модулей, которые можно использовать, к примеру, для связи с иммо от WV :)
Ну можно ещё взять м/с типа DS1307, DS1338, MCP7941x и сделать добротные часики :) - прицепить ещё солнечную панель, аккум типа 16850, и можно сказать - почти на всю жизнь :)
Главное - правильно программу написать, чтобы аккум не всё время заряжался, а по мере необходимости.

Я не могу закинуть на Яндекс диск, он требует купить диск !?! Накой мне их диск? Я что? ЛОХ свою инфу разбрасывать по всей интернетовской помойке? Да она завтра будет доступна последнему бомжу.
Поэтому, я пользуюсь этой помойкой только для раздачи неких своих данных, которые я считаю - что можно выложить в помойку.
А что? здесь есть файлообменник, который вкурит от 700 МГбайт и выше ? Чёт я сумневаюсь :)

А кто хочет, тот и нерасшаренный скачает :)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 1364 ]     ... , , , 63, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y