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

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

Ой смешно :) Сейчас разрыдаюсь :)
Во первых - 5 секунд - это было сказано условно! Понятно, что за пять сек - ничего не скачивается в данный момент, особенно днём :)
Так я и не заморачиваюсь с этим :) Мне нужно скачать там что-то на 50 ГБ, я запустил скачку, сам ушёл другим заниматься. Когда скачается - мне всплывающее окно выскочит.
А ели ВАС ЛИЧНО тот что там в архиве не интересует - так чего Вы лезете в ту скачку? :)
Выложите СВОЙ вариант для человека: расскажите - что блюпуп модуль, это не так просто - как ему рассказали в инете :)
Этот блюпуп должен подхватить свои дрова из винды, состыковаться с компом, возможно - закачать дровишки из сайта производителя того блюпуп.
После, его программа - (того вопрошающего) должна сделать запрос на комп - что адаптер-переходник присутствует, дровишки на месте, и можно пихать СВОЮ инфу :)
Ну а после - всё зависит от программы на компе, и от нужных протоколов :)
На сколько я понял из нескольких сообщений - вопрошающий не знает вообще ничего :)
Он умеет в инете сделать правильный запрос, и получить некий ответ :) И ОН считает - что этого на данный момент достаточно для того, чтобы писать проишивки и создавать собственные устройства.
Возможно - он с помощью этого- хочет получить степень бакалавра :) НУ а как минимум - банально - сдать экзамен по радиоэлектронике :)
В этом случае, если экзаменатор не баран, он его быстро опустит на землю :)

Вопросы? Угрозы? Пожелания? :)
Минусуйте дальше :)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4789075#p4789075"]5 секунд - это было сказано условно[/uquote]
1,1 Гигабайт ты и за 5 минут не скачаешь с бесплатного облака.
Скажем, МПЛАБХ примерно такого же или сопоставимого объема скачивается почти час. И это при удачном раскладе.
С тем же рейтом провайдера - 200 метров.
Поэтому не нужно болтать ерундой. Даже условно.
Человеку в здравом уме качать странный архив странного клоуна в течении даже получаса и с риском поиметь какую нибудь хрень на свой комп НИКОГДА В ГОЛОВУ НЕ ПРИДЕТ.
А разбирать такой объем архивированной информации - тем более.
Это какую квалификацию программера и эмбеддера нужно иметь, чтобы в твоем коде могли разобраться посторонние люди и вытянуть из архива то, что им нужно?
Может порадуешь нас образцами твоего суперчитабельного кода? :tea:
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4789075#p4789075"]Выложите СВОЙ вариант для человека[/uquote]
Зачем? Он кого то об этом просил? Или ты выложил сам такой вариант?
И зачем писать софт для клона ELM 327, если такого готового софта под разные группы моделей авто в интернете как говна за баней?
Никому в голову не придет писать свой софт для клона PICkit, например.
Хотя есть образец самопальной оболочки PICkit2minus. Но это скорее исключение и человек не клон делал, а писал софт.

ЗЗЫ. Так что ты затих про часы и ЕЕПРОМ? :tea:

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4789075#p4789075"]НУ а как минимум - банально - сдать экзамен по радиоэлектронике[/uquote]
Стесняюсь спросить, а в каком учебном заведении есть дисциплина с названием "радиоэлектроника"?
Даже не могу придумать. Разве только на экономических специальностях профильных учебных заведений. Но тогда и экзамен не сдают. Разве только зачет.
Реклама
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

С бесплатного не скачаешь :)
Тебе интересна САМА возможность скачать, или недостатки твоего компа? может недостатки интернет подписки, и личного самолюбия?
А может банально деньги?
Подключился на тариф - 10 МГБ/месяц за три доллара ? :) А уже середина месяца, тариф то поджимает, а скачать - хочется :)
Попроси раздачу :)
Зачем? Я не знаю зачем :) Но он зачем-то залез на сайт, возможно - за помощью... А от тебя дождёшься рваной портянки в середине зимы в густом лесу :)

А клонов пиккит... А что такое КЛОН в твоём понятии? Прошивка открыта, схема на руках. Что будет клоном? если ты повторишь эту схему, или если микрочип закажет ещё пару-тройку клонов на заводе в Китае?

А человек по сути не писал оболочку :) Он правил файл "PK2DeviceFile.DAT" - именно там - находятся все ТТХ для программируемых процев. Не, ну и оболочку конечно правил, хотя если открыть обычную оболочку пиккит2, и забросить в папку обновлённый "PK2DeviceFile.DAT",
то тоже работать будет :)
Причём, на производстве - я предпочитаю использовать для обновления прошивок - именно родную. Минус почему-то подглючивает :) ... ну ... это для пик16/18 :) Выше у себя я не использовал пока - возможности пик18 - достаточны чтобы повторить любую автоматику :)

Про часы говоришь .... :)
Интересно было бы от тебя услышать хоть один вариант работы часов ? :)
Не :) В память запоминать текущее положение не надо :) Когда сетевое напряжение пропадёт там на минут 20 -820 ... ... ну ты-же пойдёшь их переводить ? правильно?
Ну а кто-же кроме тебя может запомнить прошлое и насущное время :) Правда? :)
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4789090#p4789090"]Зачем? Я не знаю зачем Но он зачем-то залез на сайт, возможно - за помощью...[/uquote]
Но ты же ему никакой помощи не оказал. Даже самой примитивной. Чисто болтовня человека, который вообще не в теме про ELM.
Обсуждаемый девайс - это тупо МОСТ. Не нужно ничего парсить и создавать массивы. Получил с CAN - отдал в модуль блютуз, получил с блютуз - отдал в CAN. Без фантазий.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4789090#p4789090"]А что такое КЛОН в твоём понятии?[/uquote]
Клон - это устройство имитирующее некое клонируемое устройство и использующее УЖЕ ИМЕЮЩИЕСЯ протоколы клонируемого устройства. Таким образом, можно сделать PICkit на любой элементной базе и на любом МК, используя софт родного пиккита.
Схема сделанная по документации микрочипа и с прошивкой микрочипа по сути клоном не является. Это просто копия.
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4789090#p4789090"]Про часы говоришь .... :)
Интересно было бы от тебя услышать хоть один вариант работы часов ? :)
Не :) В память запоминать текущее положение не надо :) Когда сетевое напряжение пропадёт там на минут 20 -820 ... ... ну ты-же пойдёшь их переводить ? правильно?
Ну а кто-же кроме тебя может запомнить прошлое и насущное время :) Правда? :)[/uquote]
Ты несешь эпичный бред - запоминать в часах нечего. Если они остановились, то человек тупо УСТАНАВЛИВАЕТ время.
Плюс к этому, делать часы без резервного питания для СЧЕТЧИКА ВРЕМЕНИ - это глупость необычайная.
Сам счет времени потребляет микроамперы. Ему сеть вообще не нужна.
Так же глупостью является попытка регулярно писать в одни и те же адреса ЕЕПРОМ.
Писать нужно по кольцу. Когда весь ЕЕ будет полон, он стирается весь и начинается запись по новому кругу.
Тоже самое делается в программном флеше в МК, где выделенного ЕЕПРОМ нет вообще.
Реклама
Эиком - электронные компоненты и радиодетали
Грызет канифоль
Аватара пользователя
Сообщения: 279
Зарегистрирован: Вт июн 30, 2009 09:17:54
Откуда: г.Сыктывкар

Сообщение cxem »

спасибо ИИ, хоть не лается
Спойлер#include <xc.h>
#include <stdint.h>
#include <stdio.h>

#define _XTAL_FREQ 16000000

// Конфигурация для PIC18F25K80
#pragma config FOSC = HS2, PLLCFG = ON, WDTEN = OFF, MCLRE = ON

// Назначение пинов
#define K_TX LATBbits.LATB0
#define K_RX PORTCbits.RC1
#define BIT_DELAY 94 // 10400 бод

#define LED_RED LATBbits.LATB4 // Передача
#define LED_YELLOW LATBbits.LATB5 // Цикл
#define LED_GREEN LATBbits.LATB6 // Прием данных
#define LED_BLUE LATBbits.LATB7 // Ожидание

void delay_ms_long(uint16_t ms) {
while(ms--) { __delay_ms(1); }
}

void UART_Init(void) {
TRISCbits.TRISC6 = 0; TRISCbits.TRISC7 = 1;
TXSTA1bits.BRGH = 1; BAUDCON1bits.BRG16 = 0;
SPBRG1 = 25; // 38400 бод
TXSTA1bits.SYNC = 0; RCSTA1bits.SPEN = 1;
TXSTA1bits.TXEN = 1; RCSTA1bits.CREN = 1;
}

void UART_Write(uint8_t data) {
while(!(PIR1 & 0x10)); // Прямая проверка флага TXIF
TXREG1 = data;
}

void UART_Print(const char* str) {
while(*str) UART_Write(*str++);
}

// Программный прием байта K-Line с таймаутом
uint8_t k_read_byte(void) {
uint8_t data = 0;
uint32_t timeout = 45000;
while(K_RX == 1 && --timeout > 0);
if(timeout == 0) return 0xFF;

__delay_us(BIT_DELAY + (BIT_DELAY/2));
for(int i = 0; i < 8; i++) {
if(K_RX) data |= (1 << i);
__delay_us(BIT_DELAY);
}
return data;
}

// Программная отправка байта K-Line (с инверсией и очисткой эха)
void k_send_byte(uint8_t data) {
LED_RED = 1;
K_TX = 1; __delay_us(BIT_DELAY); // Start bit
for (int i = 0; i < 8; i++) {
K_TX = (data & 1) ? 0 : 1;
data >>= 1; __delay_us(BIT_DELAY);
}
K_TX = 0; __delay_us(BIT_DELAY); // Stop bit
LED_RED = 0;
k_read_byte(); // Удаление собственного эха из линии
}

void main(void) {
char msg[40];
uint8_t buffer[64];

ANCON0 = 0x00; ANCON1 = 0x00;
TRISB = 0x00; TRISCbits.TRISC1 = 1;
UART_Init();

UART_Print("\r\nMIKAS-7.1 MONITOR READY\r\n");
K_TX = 0; delay_ms_long(500);

// Fast Init (25ms Low / 25ms High)
K_TX = 1; delay_ms_long(25); K_TX = 0; delay_ms_long(25);

// Start Communication (81 10 F1 81 03)
k_send_byte(0x81); k_send_byte(0x10); k_send_byte(0xF1);
k_send_byte(0x81); k_send_byte(0x03);
delay_ms_long(100); // Пауза после инициализации

while(1) {
LED_YELLOW = 1;
// Запрос PID 21 01: 82 10 F1 21 01 E5
k_send_byte(0x82); k_send_byte(0x10); k_send_byte(0xF1);
k_send_byte(0x21); k_send_byte(0x01); k_send_byte(0xE5);

LED_BLUE = 1;
uint8_t len = 0;
for(uint8_t i = 0; i < 60; i++) {
uint8_t b = k_read_byte();
if(b == 0xFF) { len = i; break; }
buffer = b;
}
LED_BLUE = 0;

// Поиск ответа ЭБУ (маркер 61 01)
uint8_t found = 0;
for(uint8_t j = 0; j < (len - 14); j++) {
if(buffer[j] == 0x61 && buffer[j+1] == 0x01) {
// Данные найдены, расчет параметров МИКАС-7.1:
// Обороты (индекс j + 13 и j + 14)
uint16_t rpm = ((uint16_t)buffer[j+13] << 8 | buffer[j+14]) / 4;
// Температура ОЖ (индекс j + 7)
int16_t temp = (int16_t)(buffer[j+7] * 0.75) - 40;
// Напряжение (индекс j + 8)
float volt = (float)buffer[j+8] * 0.0704;

sprintf(msg, "RPM: %u | T: %d C | U: %.1f V\r\n", rpm, temp, volt);
UART_Print(msg);
LED_GREEN = 1;
found = 1;
break;
}
}

if(!found) UART_Print("No Response...\r\n");

LED_GREEN = 0;
LED_YELLOW = 0;
delay_ms_long(1000); // Опрос раз в секунду
}
}
Вложения
Терминал-тест_МИКАС-7_.png
(101.23 КБ) 38 скачиваний
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4782418#p4782418"][uquote="КРАМ",url="/forum/viewtopic.php?p=4782416#p4782416"][uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4782414#p4782414"]А ничего ?!? что мы НИКУДА не уходили из банка НОЛЬ???[/uquote]
Ну и что?
Это стандартная опция для нулевого уровня оптимизации. Да, этот уровень подразумевает полную изоляцию команд Си при компиляции. В результате возникают такие вроде бы бессмысленные повторы. Поднимите уровень оптимизации и они исчезнут.
Для исполняемого кода такие повторы не являются багом. Они ни на что, кроме скорости, не влияют.[/uquote]

Да ничего, если не считать - что в МАКСИМАЛЬНОЙ оптимизации - Вы получите тот-же код :)
Есть сомнения?[/uquote]
Появилось немного времени и я открыл один из проектов для PIC18F27Q43 на Си.
У меня нет действующей платной лицензии на ХС8, что понятно, ибо я давно не использую продукцию Микрочип в новых разработках по известным причинам.
Выбрал оптимизацию -O3 точно так же, как и в проекте ALEKS1102X. Напомню, что -O3 (speed оптимизация) и -OS (space оптимизация) являются уровнями оптимизации доступными только по платной лицензии.
Привожу скрин окна Output после компиляции (изображение дважды кликабельно для увеличения, как обычно):

Изображение
::: advisory (2051) the current license does not permit the selected optimization level, using optimization level 2
Спецом для нашего "умельца" перевод: рекомендация (2051) текущая лицензия не допускает выбранный уровень оптимизации, используется уровень оптимизации 2.

Как обычно, ALEKS1102X прогнал самоуверенную и смешную пургу про "баги Микрочипа, которых миллионы"... :music: :music: :music:
Реклама
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

Добрый день!

Для Схем - конечно не лается :) Но и не работает скорее всего :)
Вы отправили неких пару байт, словили эхо, прочитали его :)
Ну уже хорошо :) Лучше чем НИЧЕГО! :)

А дальше - Вам нужны протоколы общения с некой машиной :) - Там будет сыпаться инфа к Вам и должна от Вас :)
Всё будете софтово обслуживать ?
А не боитесь, что пока будете софтово ворочать протоколом типа USART, - проебё** ОЙ! потеряете данные от Wi-Fi модуля?

Получить эхо от макс485 - это уже достижение :)
А почему скорость 10400 ?2!
пик18 позволяет работать на скоростях до 300'000 тысяч :) Дальше смысла нету :)
Вы не подсчитаете данные для передачи, которые нужно пихать в приёмник :) Проц просто слабый :) А 10400 - это условия препода, или отсебятина ? :)

Для КРАМа - запоминать в часах есть чего :) И это "чего" - это последние показания времени.
Видишь ли .... :) часы (механические) не видят - в каком положении были в последнее время ... :) ну типа до выключения питания ... :)
В них есть датчик (Холл, геркон, и т.п...) который показывает последнее состояние минутной стрелки и остальное :)
А через час, сутки, день, МЕСЯЦ :) после пропажи питания - тот часовой механизм знает только то, что записал в свою ЕЕПРОМ :)
А там - последнее состояние часов в часах и минутах :)


Ты просто очень глуп и не видал больших писек, поэтому - твоё призвание - лазить на вышку и подводить время вручную :)
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4791514#p4791514"]Для КРАМа - запоминать в часах есть чего :) И это "чего" - это последние показания времени.
Видишь ли .... :) часы (механические) не видят...[/uquote]
Причем тут вторичные часы, дурень?
Речь шла о первичных, которые МК, а не механика.
Зачем бесконечно писать в ЕЕ, если первичные могут делать это лишь при пропадании питания? Но для этого они должны иметь резервное питание в виде обычной батарейки или аккумулятора.
Пешы исчо, балабол.
:tea:
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

Знаете Alex! Самое смешное - что того навоза, который там сейчас написан - я не писал :)
Я писал то, что увидите на скрине: https://drive.google.com/file/d/1jCtxsw ... sp=sharing

Добавлено after 5 minutes 51 second:
Для КРАМ - Ты может очень глуп, но первичные часы - это просто электроника.
А вторичниые - это та электроника, которые по первичным двигаеют стрелки, и они немного сложнее первычных :)
Но тебе пизда.... балаболу - это вряд ли удастся это понять :)
Мучитель микросхем
Сообщения: 475
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Первичные часы обычно делают автономными, чтобы они тикали даже без внешнего питания. А для синхронизации со вторичными механическими часами после пропадания питания просто подается команда на установку стрелок в соответствующее положение по сигналу первичных часов. Так что запоминать в ЕЕПРОМ положение механических стрелок не требуется.
Но у механических стрелок есть угловые энкодеры. Или хотябы один датчик начального положения.
Последний раз редактировалось Rapra Вс фев 22, 2026 12:57:14, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4791524#p4791524"]А вторичниые - это та электроника, которые по первичным двигаеют стрелки, и они немного сложнее первычных[/uquote]
И что это меняет?
Если вторичными управляет МК, то что мешает этому МК иметь резервное питание и что либо запоминать лишь при его пропадании?
Тут разговор не шел про "сложность" механических часов. Тут обсуждается схемотехника и софт электронной части.
Но тебе, дурень, кроме своего ЧСВ обсуждать нечего.
ЗЫ. Особо насмешил твой скрин. Курнул ты изрядно. У кого траву купил? Напиши ему отрицательный отзыв в интернет. :music:
Мучитель микросхем
Сообщения: 475
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4791514#p4791514"]) часы (механические) не видят - в каком положении были в последнее время ...[/uquote]
Абсолютный энкодер с кодом Грея или бинарным на каждой стрелке - и проблема "видимости" положения стрелок решена без каких-либо ЕЕПРОМов. Текущее положение стрелок определяется моментально при подаче питания. Далее, первичные часы, которые без питания тикали от батарейки, просто подают сигнал установки стрелок в соответствующее текущему времени положение.

Изображение
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

Rapra не несите чушь :)
Часы должны быть до безобразия простыми :)
Они такими и являются - один датчик Холла, и запись в память последнего состояния :)
Часы остановились к примеру на 12:15.
Проходит несколько часов без наличия питания, приходит от первичных часов значение 18:25 (пример), значит, часы должны повернуться по часовой на 6 часов и 10 минут...
А батарейку и прочее - засуньте КРАМу в одно известное место :) И желательно - с АКБ от КАМАЗа :)
Мучитель микросхем
Сообщения: 475
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Даже если в часах только один датчик положения, то при подаче питания просто поверните стрелки до этого начального положения, а потом поверните их на число шагов, соответствующих текущему времени с первичных часов.
Впрочем, если хочется непременно запоминать положение в ЕЕПРОМ, то можете делать так. Но это не застрахует от перемещения стрелок часов при выключенном питании.

Хотя вообще, известные мне механические часы имеют на валах стрелок как раз абсолютные угловые энкодеры.
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4791534#p4791534"]батарейку и прочее - засуньте[/uquote]
Что и требовалось доказать.
Кроме хамства по существу проблемы сказать совершенно нечего.
Ибо безграмотный и хвастливый недоумок.
[uquote="Rapra",url="/forum/viewtopic.php?p=4791541#p4791541"]если хочется непременно запоминать положение в ЕЕПРОМ, то можете делать так.[/uquote]
Тут разговор идет не про энкодер и сложность механики стрелочных вторичных часов.
Пациент ранее утверждал, что:
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4786733#p4786733"]Хотите простой пример: вот сейчас в моём городе, на одной из башен с часами - занимаюсь именно теми часами. Там стоит PIC16F628A, такой стареньнький ничем не примечательный проц
Прошивки открыты, я их считал, мало того, я сделал свою прошивку, но не суть в этом, суть в том - что там каждую минуту в проц в ДВЕ ячейки ЕЕПРОМ записывает состояние времени: минут и часов.
Спросите - а что тут такого?
Да вроде ничего, если не считать - что в год - в эти ячейки ЕЕПРОМ записывается всего-то 24 часа * 60 минут * 365 дней = 525600 записей :)
А часы работают с 2009-ого года, значит уже 16 лет. .... бла... бла... бла...[/uquote]
Вот разговор шел только о том, зачем каждую минуту писать в ЕЕ?
Ответить аргументированно клиент не может... :music:
Мучитель микросхем
Сообщения: 475
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Ах вон оно чо, Михалыч(С) :))
Писать в ЕЕПРОМ можно не каждую минуту, а по сигналу детектора снижения напряжения. Напряжение ведь не моментально пропадает, на заряде конденс. как раз хватает несколько десятков миллисекунд.
Но раз разговор о часах в башне, то поставить на валы абсолютные энкодеры - не такая уж и проблема.

Впрочем, ЕЕПРОМКИ более живучи, чем флеши. И если писать в разные ячейки по кругу, то несколько лет вполне протянут.

Добавлено after 8 minutes 18 seconds:
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4786733#p4786733"]Может назовёте мне СОВРЕМЕННЫЙ проц, который во внутреннюю ЕЕПРОМ в одни и те-же ячейки будет столько записывать?[/uquote]
Назовем любую STM32, но не с ЕЕПРОМ, а со статической бекап-памятью, питаемой от батарейки CR2032, в которую можно писать хоть десять раз в секунду. Заодним она же обеспечивает и ход первичных часов без внешнего питания. На десяток лет батарейки хватит, то и больше.
Последний раз редактировалось Rapra Вс фев 22, 2026 15:14:15, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Rapra",url="/forum/viewtopic.php?p=4791552#p4791552"]если писать в разные ячейки по кругу[/uquote]
Вы не поверите :) :
[uquote="КРАМ",url="/forum/viewtopic.php?p=4786738#p4786738"][uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4786733#p4786733"]Прошивки открыты, я их считал, мало того, я сделал свою прошивку, но не суть в этом, суть в том - что там каждую минуту в проц в ДВЕ ячейки ЕЕПРОМ записывает состояние времени: минут и часов.[/uquote]
Мало ли какая глупость тебе придет в голову...
Зачем вообще писать в ЕЕПРОМ "состояние времени"? Тем более, зачем писать в одну и ту же ячейку?
Наверное если ДЕЙСТВИТЕЛЬНО возникнет необходимость запомнить текущее значение при внезапном отключении питания, то для этого существуют технические решения исключающие бесконечные записи в ЕЕПРОМ или флеш. Они могут быть как внешние, так и внутренние. Поскольку сама по себе такая задача носит очень редкий характер, то применение внешнего чипа с автоматическим запоминанием при отключении питания (такой имеется у Микрочипа), а так же применение МК с FRAM или схемы контроля питания с удержанием питания для записи во флеш, является технически обоснованным решением.
Так же можно выбрать МК с возможностью программной прошивки собственного программного флеша и писать туда по кольцу, занимая большой кусок свободного флеша. Это редуцирует количество стираний в сотни и тысячи раз, делая ресурс флеша практически вечным для такой цели.[/uquote]
[uquote="КРАМ",url="/forum/viewtopic.php?p=4789097#p4789097"]Так же глупостью является попытка регулярно писать в одни и те же адреса ЕЕПРОМ.
Писать нужно по кольцу. Когда весь ЕЕ будет полон, он стирается весь и начинается запись по новому кругу.
Тоже самое делается в программном флеше в МК, где выделенного ЕЕПРОМ нет вообще.[/uquote]
Но чукча не читатель, чукча писатель. ALEKS1102X сюда пришел почесать свой ЧСВ, а не с вопросом или конкретным примером кода.
Последний раз редактировалось КРАМ Вс фев 22, 2026 15:18:07, всего редактировалось 1 раз.
Мучитель микросхем
Сообщения: 475
Зарегистрирован: Пн фев 16, 2026 17:30:02

Сообщение Rapra »

Ну, узость мЫшления, нежелание отойти и посмотреть с другой стороны.. Эт бывает. Особенно, у воинствующих неофитов :))
Нашел транзистор. Понюхал.
Сообщения: 160
Зарегистрирован: Пт мар 29, 2013 23:53:14

Сообщение ALEKS1102X »

[uquote="Rapra",url="/forum/viewtopic.php?p=4791541#p4791541"]Даже если в часах только один датчик положения, то при подаче питания просто поверните стрелки до этого начального положения, а потом поверните их на число шагов, соответствующих текущему времени с первичных часов.
Впрочем, если хочется непременно запоминать положение в ЕЕПРОМ, то можете делать так. Но это не застрахует от перемещения стрелок часов при выключенном питании.

Хотя вообще, известные мне механические часы имеют на валах стрелок как раз абсолютные угловые энкодеры.[/uquote]

Rapra?!? До какого начального состояния ?

НАЧАЛЬНОЕ состояние датчика - это СЕКУНДНАЯ СТРЕЛКА на НОЛЬ :)
Таких начальных состояний этого датчика в сутки может быть : 24 часа * 60 минут = 1440 раз :)

А ВЫ какой механизм имели ввиду???
Типа "https://www.magntek.com.cn/upload/pdf/202407/MT6826S_Datasheet_Rev.1.1.pdf" на часовую стрелку ? :)
Или КАК ?!? Вы себе представляете часы на башне???

Пост Скрипнул: Не знаю скрипнул или пукнул :), НО! Есть некий заводской механизм, который даёт редуктором соотношение: 1:60:12 - один оборот часовой стрелки = 12 оборотов минутной = 60 оборотов секундной.
Или если в прямом смысле - то ОДИН оборот часовой = равен 12-ти оборотам минутной = 720 оборотам секундной.
Или: 720 * 400 полушагов = 288000 полушагов двигателя за полудня: 0...12 или 13...24 :)
За сутки будет в ДВА раза больше :)

А вот когда Вы из теоретиков превратитесь в практиков (что практически невыполнимо :) ), то тогда не будет ГЛУПЫХ вопросов :)
Вот вам небольшой архив, не для КРАМа - у него интернет некудышний :)
https://drive.google.com/file/d/1Kl2XBfOyvTm4njy5jD2lFA2mpNOd3hcj/view?usp=sharing
Друг Кота
Аватара пользователя
Сообщения: 25399
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4793662#p4793662"]Вот вам небольшой архив[/uquote]
Терминальный дурень.
:facepalm:
[uquote="ALEKS1102X",url="/forum/viewtopic.php?p=4793662#p4793662"]НАЧАЛЬНОЕ состояние датчика - это СЕКУНДНАЯ СТРЕЛКА на НОЛЬ[/uquote]
Да хер с ним, с энкодером. Хочешь крутить от нуля - крути. Ты не ответил на вопрос по поводу резервного элемента питания контроллера - зачем писать в ЕЕ каждую секунду? У тебя не хватило мозгов изменить цепь питания МК с помощью одного диода и одного элемента 2032 или трех щелочных элементов АА (ААА)?
Про писать в ЕЕ по кругу я уже молчу - твоя тупость на первом вопросе зашкаливает...
ЗЫ. Однако и про энкодер.
Причем тут механизм вращения стрелок? Какое отношение к этому механизму имеет энкодер? Включи наконец моск... :facepalm:
Ответить

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