Страница 160 из 199
c105
Лысик
та у него просто денех нет коробку ремонтировать.
Zver_042
Garik36 писал(а):


На клеммах есть изолирующие наконечники. Силикон, или что-то типа того. Ну и они уже год там лежат, что могло случиться? Да ничего.


А ты не пробовал поиск неисправности с них начать, или хотя бы убедиться, что не подключенный конец надежно изолирован?
kazak1102
.kkursor
Короче...
В "хидере" 128.h таймер 1 прописан так, что обращаешься полноценно к 16 разрядному регистру, то есть, с int он работает полноценно... Таймер 3, тот же регистр прописан, как 2 8 разрядных...
Задефайнил в "хидере" регистры, как int, прописал им адреса и резерва МК, всё заработало... Щас буду колдовать над тахометром... dns4
Но вопрос не снимается... Гугла про это ничего не говорит, а мне может понадобиться... Drinks or Beer
Zver_042
т808 писал(а):

Их и раньше могли повредить,например,когда пол за водительским сиденьем варили.


Саш, я это прекрасно знаю, но Гарику начать с простого надо было. У меня бы поиск неисправности занял несколько меньше времени и вопросов hehe
kazak1102
.kkursor писал(а):

модель МК,


т808
Zver_042 писал(а):

Гарику начать с простого надо было.


Про простое (отключение выходов каналов на разъеме магнитолы) ты ему сразу указал,но он почему-то там ухитрился запутаться.
Коричневая фишка:
Развернуть

Zver_042 писал(а):

У меня бы поиск неисправности занял несколько меньше времени


У тебя такой неисправности просто не появилось бы. supercool
Zver_042
т808 писал(а):

У тебя такой неисправности просто не появилось бы.


Ну я в общем hehe Мне и чужие машины "ковырять" приходилось Pardon
.kkursor
kazak1102
В AVR похоже Little Endian ( 0x1234 ).
Есть два порядка байт. В Intel x86 используется LE ( A0, A1, ..., An). 0x1234, старший байт 34, младший 12). Проблема в совместимости. На платформе, где используется BE, попытка выполнить код:
int a = 0x1234;
приведёт к тому, что по факту в a будет не 0x1234, а 0x3412.
Я могу сказать, что я до сих пор путаюсь и "endianness" определяю методом тыка. pst
Подробнее тут: https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%80%D1%8F%D0%B4%D0%BE%D0%BA_%D0%B1%D0%B0%D0%B9%D1%82%D0%BE%D0%B2

Суть в чём. Тебе нужно знать порядок байт, чтобы корректно загнать байты в многобайтную переменную. Идея такова.
Пусть у тебя есть
char reg_l = 0x34;
хранящий младшие разряды, и
char reg_h = 0x12;
хранящий старшие. Тогда получить в одной многобайтной переменной значение можно так:
short reg = reg_h<<8 + reg_l;

Если порядок байт другой, то будет соответственно
short reg = reg_l << 8 + reg_h;

Понять "сдвиг" очень легко. Возьми калькулятор (виндовый подойдёт), переведи в режим систем счисления, а дальше напиши какое-нибудь число, например 255 (для простоты). Переведи в двоичную, будет 1111 1111. Дальше сдвиг влево на 1 разряд - ты берёшь эту всю фигню и двигаешь влево, дописывая 0 справа. Будет 1111 1111 0. По сути сдвиг влево на 1 разряд = умножить на 2. Со сдвигом вправо такая же ботва, только ты "теряешь" правые разряды. Соответственно это поделить на 2.

А теперь по сути у тебя получится, что ты имеешь старший разряд (пусть 255) и младший (пусть 127 = 0111 1111 ). Берём старший разряд и двигаем влево на 8 разрядов. У нас получится переменная типа short (2 байта) со значением 1111 1111 0000 0000. Прибавим к ней младший разряд. Будет 1111 1111 1000 0000.

Тока я с порядком напутал всё же... pst короче это лучше экспериментально проверять
Zver_042
т808 писал(а):

Коричневая фишка:


Я поэтому и спросил Гарика, как его разъем выполнен. Бывают моноблоком со стороны проводки, а ответка сразу в балалайке, без переходников . Тут Гарикам сложнее Pardon
т808
Zver_042 писал(а):

Бывают моноблоком со стороны проводки, а ответка сразу в балалайке, без переходников . Тут Гарикам сложнее


А может наоборот проще,
ведь при этом "хвосты" от главного разъема балалайки не длинные и приживляются к разводке почти всегда на скрутках.
Zver_042
т808 писал(а):

почти всегда на скрутках.


Я побоялся напрямую предлагать Гарики дербанить скрутки, надеялся что у него разъем как на твоем фото, или хотя бы со стороны проводки составной Pardon
Но у него получилось rlzz
kazak1102
.kkursor писал(а):

Понять "сдвиг" очень легко. Возьми калькулятор (виндовый подойдёт), переведи в режим систем счисления, а дальше напиши какое-нибудь число, например 255 (для простоты). Переведи в двоичную, будет 1111 1111. Дальше сдвиг влево на 1 разряд - ты берёшь эту всю фигню и двигаешь влево, дописывая 0 справа. Будет 1111 1111 0. По сути сдвиг влево на 1 разряд = умножить на 2. Со сдвигом вправо такая же ботва, только ты "теряешь" правые разряды. Соответственно это поделить на 2.


Ну это то понятно...
.kkursor писал(а):

А теперь по сути у тебя получится, что ты имеешь старший разряд (пусть 255) и младший (пусть 127 = 0111 1111 ). Берём старший разряд и двигаем влево на 8 разрядов. У нас получится переменная типа short (2 байта) со значением 1111 1111 0000 0000. Прибавим к ней младший разряд. Будет 1111 1111 1000 0000.


А вот это - откровение... hehe Вот знал, шо надо двигать, но как, не понимал... Надо было на калькуляторе смоделировать... dns4 Drinks or Beer
.kkursor писал(а):

Если порядок байт другой, то будет соответственно


У нас, при чтении, сначала читаем младший, потом старший, при записи - наоборот... Получаем то всё равно 2 переменных, с которыми потом делаем то, что нам надо...
Короче, понял всё, даже шпаргалка не нужна...
Пока поработаю с моим вариантом, с доработкой библиотечного файла... Компилятор не ругается, Протеус принял к сведению, и щас работает с этим вариантом... По идее, МК не должен возражать (в железе)... Так оно лучше, не надо делать лишних телодвижений в коде...
c105
В воскресенье с ребятами идем пить в паб хорошее пиво
.kkursor
kazak1102 писал(а):

при чтении, сначала читаем младший, потом старший, при записи - наоборот


Эт как?

kazak1102 писал(а):

Получаем то всё равно 2 переменных, с которыми потом делаем то, что нам надо...


Идею ты уловил. Good

Добавлено спустя 28 секунд:

c105
Как спихнуть оплату счёта на ребят, уже придумал?
kazak1102
kazak1102 писал(а):

Пока поработаю с моим вариантом,


Код:

  // Обработчик прерывания спидометра
 interrupt [TIM3_CAPT] void timer3_capt_isr(void)
 {
 TCNT3 = 0;
 j2 = ICR3;
 count2++;
  if(count2 == 8) {
  tick = (unsigned int)(j >> 3); j = 0; count = 0; // Получаем данные для вычисления скорости
  }
 }



Работает... ppc
.kkursor
c105
.kkursor писал(а):


Как спихнуть оплату счёта на ребят, уже придумал?

63 та нееее. Сам за себя плачу.Меньше чем на касарь не рассчитываю. Там говорят, уаще отменное пиво и закуска
kazak1102
.kkursor писал(а):

Эт как?


Это по даташиту...
Читаем младшие 8 разрядов из врЕменного регистра, старшие автоматом пишутся на место младших, читаем их...
А нам без разницы уже, кого читать раньше, потом будем всё равно двигать то, что надо... Very Happy
c105
У нас сегодня мокрый снег выпал обильно, до сих пор идет. Я вчера тазик намыл.Как всегда
kazak1102
.kkursor писал(а):


kazak1102 писал(а):
Работает


Ну, это уже сам код, но спидометра... Тахометр вот прям щас пишу...
.kkursor
kazak1102 писал(а):

Читаем младшие 8 разрядов из врЕменного регистра, старшие автоматом пишутся на место младших, читаем их...


А, понятно.

kazak1102 писал(а):

Ну, это уже сам код, но спидометра... Тахометр вот прям щас пишу...


Смотрю процесс пошёл! Good

Добавлено спустя 50 секунд:

c105 писал(а):

Сам за себя плачу.Меньше чем на касарь не рассчитываю


Не по-красоте. facepalm
А кушать потом что будешь?
ЭД*
c105 писал(а):

Сам за себя плачу.Меньше чем на касарь не рассчитываю.


Чую кто-то не удержался и открыл конвертик. supercool
c105
.kkursor макароный вон куплю за тридцатку pst я не всю зарплату снял, на макароны хватит до следующей получки hehe
.kkursor
c105
Гoвно есть не пробовал? Кукурузка-то почти не переваривается, её помыть можно и второй раз скушать. Good
ЭД*
kazak1102 писал(а):

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


Абра-кадабра hehe
Мой мозг это понял так : старшие с автомата расстреляли младших и стали двигать и считать их трупы. hehe
Новая тема Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.
Показать сообщения:
Страница 160 из 199
Перейти:
ИНФОРМАЦИЯ ПО ИКОНКАМ И ВОЗМОЖНОСТЯМ

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