Перейти к содержанию

crazz

Рекомендуемые сообщения

Еще раз. Не обижайтесь. Написана полная чушь. Исправлять бессмысленно.

А я и не обижаюсь, все что у меня написано в коде это все по советам в этой ветке =) Так что нужно обижаться им.

А я изначально все спрашивал как грамотно и тд и тп.

Буду пробывать по вашему варианту. вчитываться и вдумываться.

Ссылка на комментарий
Поделиться на другие сайты

Прочитайте басню Михалкова "Слон-живописец".

:crazy:

Чтобы задавать вопрос, нужно на 80% знать на него ответ. Иначе проку от ответа не будет.

Так и получилось. Вы сбросили причудливую кучу самые разнородные ответы, каждый из которых ОТДЕЛЬНО вполне справедлив. Но ВМЕСТЕ получилась галиматья.

Вам надлежит построить в голове не только ЧТО делает алгоритм, но и КОГДА он это делает.

То есть вместе с блок-схемой необходимо нарисовать ВРЕМЕННУЮ ДИАГРАММУ этого алгоритма.

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Позже вернусь к выше написанному а пока что следующий вопрос по пику.

мне нужно слать по кан шине пакет с данными.

Планирую сооружать вот по такой схеме:

wGJC0iz9Djc.jpg

Есть пару вопросов, во-первых обязательно ли нужен кварцевый резонатор на 8Mhz для MCP2510?

Как я понимаю мне надо сконфигурировать МК и сконфигурировать MCP2510, я примеры программ видел но не очень понял. Понимаю что МК общается с MCP2510 по SPI, тоесть я пишу программу для МК и в ней пишу конфигурацию для MCP2510 и шлю эти конфигурационные данные по SPI? Если да то почему я не нашел этого места в коде? Или я чего то не понимаю?

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

1. Кварц обязателен. Все асинхронные интерфейсы требуют стабильной и определенной частоты, иначе обеспечить прием длинных слов невозможно.

2. В каком виде Вы ожидали увидеть инициализацию КАН в коде? Скорее всего это вывод из таблицы. Адресация SPI может быть и косвенной, поэтому увидеть адрес регистра SPI может и не получиться. Вообще, разбор стеков протоколов даже в исходниках программ достаточно сложное занятие. А уж разобрать этот стек через дизасм чужого кода - полагаю невозможным В ПРИНЦИПЕ для Вашего уровня квалификации. Подобная задача является мазохизмом в кубе. Гораздо проще написать свой код с нуля. И по любому требует точного знания и свободного владения самим разбираемым протоколом.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Да не я аж с комментариями код разбирал http://pro-diod.ru/article/mcp2515-can-kontroller.html

Хотя вот щас поглядел еще раз и как понимаю создана функция которая вызывает функцию по SPI и по сути по SPI Шлет инфу конфигурации в MCP, я правильно понял?

Ну вот к примеру

mcp_write(CANINTE,0x00);

тоесть конфигурация MCP осуществляется записью в определенные регистры данных по SPI

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Доброго времени суток.Второй день бьюсь с DS18B20,не могу понять почему не работает,на индикатор выводит только -00,06 и все.В архиве проект в микроС и протеус.

PS дело оказалось в кварце.Вопрос закрыт.Всем спасибо.

Изменено пользователем P32L
Ссылка на комментарий
Поделиться на другие сайты

Блин с элементарной вещью разобраться не могу, че у меня порты не горят а моргают?

PIC16F819

Уже всю программу закомментил и осталось вот что:

void init(void)
{
INTCON =0b00000000;
PORTA = 0; //îáíóëÿåì ïîðòû à
PORTB = 0;
TRISA = 0b00000000; //âñå ïîðòû RA íà âûõîä
TRISB = 0b00000000;

void main(){
init(); //âûçûâàåòñÿ ôóíêöèÿ init
while(1)
{
RA0_bit=1;
RA1_bit=1;
RA2_bit=1;
RA3_bit=1;
RA4_bit=1;
RA6_bit=1;
RA7_bit=1;

RB0_bit=1;
RB1_bit=1;
RB2_bit=1;
RB3_bit=1;
RB4_bit=1;
RB5_bit=1;
RB6_bit=1;
RB7_bit=1;
}
}

Порты RA0-RA3 моргают а не горят

где я накосячил?

Среда microC и кстати как кодировку нормальную поставить чтобы копировались комментарии?

Ссылка на комментарий
Поделиться на другие сайты

Кодировку не надо ставить, просто переключайтесь НА РУССКИЙ язык когда копируете что-то в буфер обмена. Проблеме 100 лет в винде с неюникодовыми полями ввода/вывода текста... так и не решили.

Кстати, а что скрывается под конструкцией вида RA0_bit? Может в этом проблема...

Это явно не родная часть языка, это какой-то макрос.

Изменено пользователем Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

очень просто. Если условие выполнено, запускаешь watchdog и сразу после него ставишь бесконечный цикл. Первая инструкция в программе должна отключать watchdog. Будет сброс по требованию.

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

mail_robot вы опять бред пишите... собака в пиках отключается только на уровне железа, отключить/включить ее программно не возможно...

можно только сбросить....

batir74 чем вызвана необходимость программного сброса МК?

if (usloviya) asm("GOTO 0x000");

Ссылка на комментарий
Поделиться на другие сайты

Программно сбросить контроллер невозможно, только физически отдельной ножкой порта дёрнуть ножку сброса...

Или, программно запретить прерывания и перейти по вектору RESET, чтобы программа повторно прошла процесс инициализации периферии. Но тут есть засада, это не настоящий аппаратный сброс и состояние некоторой периферии, которая не инициализируется в начале программы может оказаться не в начальном состоянии, поэтому чтобы возможно было реализовать такой финт ушами в начальной инициализации НЕОБХОДИМО задать состояние всей периферии без исключения и состояние всех переменных.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

v kompilyatore CCS mojno sbrosit prossesor reset_cpu(); , na HI-TECH kak eto mojno sdelat ?

я вам уже написал , что не понятно

if (usloviya) asm("GOTO 0x000");

поэтому чтобы возможно было реализовать такой финт ушами в начальной инициализации НЕОБХОДИМО задать состояние всей периферии без исключения и состояние всех переменных.

хайтек для этого формирует старт.файл или нет?
Ссылка на комментарий
Поделиться на другие сайты

А посмотри сам, это ведь не сложно? Главное, чтобы перед переходом прерывания были запрещены.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Кстати, собаку же можно включить постоянно, просто зациклив прогу, не сбрасывать её. Получится тот же сброс, но долгий. Зато правильный.

А гоуту 0х00 ... хм... даже и не знаю, на что можно напороться с такими финтами...

Можно ногой дёргать внешний сброс, тоже вариант.

Но, скорее всего, человеку это всё без надобности. Частенько такие вопросы задают новички. Ещё любимый вопрос "Как выйти из прерывания в другую функцию". Это всё говорит о неправильном алгоритме программы. Можно обойтись и без всего этого.

Ссылка на комментарий
Поделиться на другие сайты

mail_robot вы опять бред пишите

пардон. Уже отвык от этого хлама. В STM такой финт делается без проблем

но я честно говоря ситуаций требующих такого насилия над камнем даже придумать не могу

Изменено пользователем mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Ссылка на комментарий
Поделиться на другие сайты

хм... даже и не знаю, на что можно напороться с такими финтами...

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

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

DOBROE VREMYA SUTOK . HOTEL IZMERIT DLINU IMPULSA PO VHODU INT ;

if (INTF) {

INTF=0;//SBROS FLAGA

INTEDG=0;//PEREKLUCHAEM PRERIV. PO ZADNEMU FRONTU

TMR1ON=1;//VKLUCHAEM TMR1

TMR1L=0;

TMR1H=0;//OBNULAEM TMR1

}

if(INTF){

INTF=0;//SBROS FLAGA PRERIV.

INTEDG=1;//PEREKLUCHAEM PRERIVANIYA PO PEREDNEMU FRONTU

TMR1ON=0;//VIKLUCHIM TMR1

tamer=(TMR1H<<8)+TMR1L;//ZAPISIVAEM ZNACHENIYA TMR1

}

PRAVILNO TAKOY PODHOD DLYA IZMERENIE DLINU IMPULSA?

Ссылка на комментарий
Поделиться на другие сайты

Длину импульса измеряют с помощью модуля CCP.

Определяют фронт захвата и по прерыванию от ССР читают два значения таймера 1 в момент захвата. Из второго значения вычитают первое и, если разность отрицательна (произошло переполнение счетчика между захватами), находят модуль результата (побитная инверсия +1).

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

ЗЫ. Ваш код я не понял. Во первых, это все обработчик прерываний? Почему нет заголовка функции?

Во вторых, что это за двойная проверка флага? Вы же его сбросили в первом IF { }.

В общем, чушь какая то....

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Добрый день.

Имею некоторый успешный опыт программирования МК PIC на ассемблере. Сейчас возникла необходимость освоить Си. Был выбран компилятор CCS C compiler, который имеет как собственную среду разработки, так и может быть встроен в MPLAB.

Для начала было решено попробовать создать простой проект в CCS среде, все хорошо, все работает. Но! Когда тот же самый код (скопированы и заменены файлы main.c и main.h) был перенесен в папку с проектом MPLAB, проект скомпилирован в MPLAB и залит на плату EasyPic, он перестал работать.

И так с любым проектом: скомпилирован из-под среды CCS C compiler - работает, из-по MPLAB - не работает.

Умом-то я понимаю, что, скорее всего, дело в слове конфигурации и уже прописал его вручную в проекте как

#fuses HS,NOWDT,NOPUT,BROWNOUT,NOLVP,NOCPD,NOWRT,NODEBUG,NOPROTECT

но ситуация не изменилась.

В чем может быть проблема? Что еще такого незаметно делает CCS компилятор при создании hex-файла, чего не делает MPLAB?

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...