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

Бортовой комп. на Mega8 (+)

 

:blink: Исходник в jpg. Круто...

зато форматирование IAR-овское сохранилось, не у всех же IAR, а в txt читать - ногу сломаешь :tongue:

Поделиться сообщением


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

Отличный код, все прекрасно прокомментировано,

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

:a14:

 

но есть моменты которые я бы заменил:

/*
p |= Bit(n);
p &= Bit(n);
if(p & Bit(n)) ... // здесь чуть-чуть отклонился от вашего кода, но смысл один (false == 0; true > 0;)
*/

на макросы:

#define clear_bit(reg,bit)    reg &= ~(Bit(bit))
#define set_bit(reg,bit)    reg |= Bit(bit)
#define test_bit(reg,bit)    (reg & Bit(bit))

 

После этого ваш код будет легче читаться :)

ведь вместо кострукций DDRD |= Bit(5);

будут set_bit(DDRD, 5);

и уже не нужен коммент установить бит такой-то там-то...

 

все это готовое есть в AvrLib'е - http://hubbard.engr.scu.edu/avr/avrlib/

 

зато форматирование IAR-овское сохранилось, не у всех же IAR, а в txt читать - ногу сломаешь :tongue:

 

гм, я думаю что никто не смотрит код в нотпаде (хотя могу быть неправ)

а чтоб форматирование было одинаковое нужно чтоб редактор умел

заменять табуляторы на пробелы.

 

ЗЫ: мне, например, понравился PSPad - http://www.pspad.com/ru/ :)

Поделиться сообщением


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

мне на работе вначале ребята помогли, и как мне показали так и делал, и привыкнуть к какому то одному стилю чтоб, еще рано(я конструктор, не программер, это хобби :) ). Мне функции отдельно заготовки дали. Главное, мне все понятно, а когда я писал коменты, еще плохо разбирался, и в некоторых местах есть неправильное объяснения, но исправите сами, кому надо, и мне говорить тоже не обязательно, я и сам знаю :)

 

а то, что код в джипиджи

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

 

найдите в сети что-то похожее?!?!?!

 

так что чисто по-человечески - жаба душит, надо время... немножко :biggrin:

и интерес остальных.

 

тот кто просил - читает не в импеге :biggrin:

 

Всем Удачи!

Поделиться сообщением


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

Выкладываю первую версию кода в .cpp и прошивку (напряжение и часовой расход)

 

Всем Удачи, Дмитрий

comp.zip

Поделиться сообщением


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

Краткое описание к приложенному файлу.

При включении - на 0.5 сек. появляется – Audi, затем напряжение.

Всего управляющих кнопок 4.

При нажатии 1-й (слева) появляется (F.)ull – полный расход; при следующем ее нажатии – (Г.)рязный – расход стоя, на ХХ, при скорости < 7 км/ч; еще раз нажать – опять (U.) – напряжение. Если держать кнопку при напряжении более 2-х сек. комп переходит в спящий режим, из которого выходит по прерыванию от форсунки. При (F.) – более 2-х секунд, он обнуляется. Также при этом обнуляются (Г.) и (У.). (F.) и (Г.) сохраняются при выкл. двигателя.

При нажатии 2-й (слева) кнопки появляется (Р.)асход – мгновенный (за 1 сек.) расход на 100 км; далее (H.) – мгнов. (за 1 сек.) часовой расход; далее (У.)средненный – расход на 100 км. за расстояние, пройденное при скорости >= 7 км/ч. При (H.) более 2- сек. переходим к вводу производительности форсунки от 0-9999 см3(мл.)/сек.. У меня после калибровки – 516 мл/сек. (У.) сохраняется.

При нажатии 3-й (слева) кнопки появляется (С.)корость – мгнов.( за 1 сек.) скорость; далее (d.)anger- скорость, при превышении которой звучит пьезик 1 сек. Если скорость упадет меньше (d-5), при превыш. (d) будет подан опять сигнал. В ином случае сигнал не повторится; далее (E.)xstra – макс. скорость которая была. При (С.) более 2-х сек. переходим к вводу кол-ву сигналов с датчика скорости за 1 км. У меня – 465. При (d.) более 2-х сек. переходим к вводу скорости, при превыш. которой будет подан сигнал. При (E.) более 2-х сек – знач. обнуляется. (d.) и (E.) сохраняются.

При нажатии 4-й (слева) кнопки появляется (П.)уть – пройденный путь; далее (L.) – пройденный путь 2; далее (d.OFF) – при этом будет отключен пьезик при превышении скорости при заданном знач. Когда мы вернемся опять к этому режиму появится (d. on) – и пьезик будет готов к работе. При (П.) и (L.) более 2-х сек. – знач. обнуляются. При (d.OFF) или (d. on) более 2-х сек. – гасятся индикаторы, при этом комп продолжает работать и горит светодиод.

 

Там где значение с десятыми, при достижении 99.9 – отображение происходит в целых.

 

Теперь буду делать новый с графическим ЖК индикатором, чтобы сразу отображалось все, а при нажатии - определенный режим высвеч. бы на весь экран. Также наверно применю 64-ю Мегу и отдельно поставлю память через SPI, т.к. встроенная очень медленная.

 

Ну а этот проект можно считать законченным. К нему у меня кроме проекта в IAR-е есть разводка плат в P-CAD-е, график и формула для напряжения в Exel-е и всякая еще разность.

 

Удачи Всем, Дмитрий.

About.zip

Поделиться сообщением


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

Написал статью с полным приложением кода и остального материала. Куда выложить?

 

Удачи, Дмитрий.

Поделиться сообщением


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

Удачи, Дмитрий.

bort_comp.part1.rar

bort_comp.part2.rar

bort_comp.part3.rar

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

Поделиться сообщением


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

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

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

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

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

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

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

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