Jump to content
AlexMerser

Программирование Attiny 13

Recommended Posts

Здравствуйте, нужна помощь в написании дипломной работы на тему: "Разработка индикатора непрерывности цепи заземления специальной аппаратуры". А именно: есть готовый код прошивки микроконтроллера Attiny 13 ( без комментариев) и алгоритм его работы(составлял программист, который уволился и в общем-то связь с ним потеряна). Нужно подробно закомментировать каждую строку кода, чтобы было понятно даже новичку в программировании. Файлы программы и алгоритма прикрепляю. Если возьметесь, пишите на почту filatov.alex1996@mail.ru . О цене и сроках готовности договоримся.

инцзкод.docx

Алгоритм работы программы ИЗАП.docx

Share this post


Link to post
Share on other sites

Код писал человек, слабо знакомый с контроллерами. Хотя, справедливости ради, код отформатирован по-человечески, имена у переменных нормальные.
 

ISR(TIM0_COMPA_vect)
{
	cli();
	ADCSRA |= (1 << ADSC);
	while(!(ADCSRA & (1 << ADIF)))
	data[numberOfADCConversion - 1] = ADCL;
	data[numberOfADCConversion - 1] += (unsigned int)(ADCH << 8);
	numberOfADCConversion--;
	sei();
	return;
}

Вот это пример неумения писать под контроллеры. В самом начале прерывания делается cli, в конце - sei. Это не то что бесполезно, это вредно. Далее идет длительное ожидание окончания преобразования, что тоже бред. Прерывания для кого придумали?!

Глубже не копал.

Кстати, "новички" часто просят прокомментировать каждую строчку кода, не понимая, что это совершенно бесполезно. Вот написать нормальные комментарии да, имеет смысл, а дублирование кода в комментариях только усложняет чтение.


Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Share this post


Link to post
Share on other sites
В 07.04.2019 в 13:35, AlexMerser сказал:

нужна помощь в написании дипломной работы на тему:

и

В 07.04.2019 в 13:35, AlexMerser сказал:

Нужно подробно закомментировать каждую строку кода, чтобы было понятно

эти задачи как то не вяжутся друг с другом! Вы хотите что бы вам объяснили как работает программа???

А вы знаете как работает микроконтроллер??? Это надо объяснять? Это в комментариях не уберется!!!

В дипломе вы собираетесь написать как работает программа???

Но тут есть большие сомнения что она вообще работает(!), потому как индикации в ней нет, насколько я смог заметить беглым взглядом!

А судя по названию индикация является одной из основных функций устройства!


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites

Драйверы MOSFET/IGBT Infineon – силой нужно управлять!

Специалисты Infineon усовершенствовали традиционные кремниевые MOSFET и IGBT и выпустили компоненты на базе принципиально иных материалов – нитрида галлия и карбида кремния. Мы создали подборку полезных материалов, чтобы вы разобрались во всех тонкостях и стали экспертом по управлению силовыми приборами нового поколения CoolMOS, CoolGaN, CoolSiC!

Подробнее

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • КТ117 Спасибо✋ Увеличил резистор до 10 Ом. Все в норме, импульс схлопывается.  
    • я поленился в синхронном переливе зашунтировать нижний ключ диодом Шоттки - потери нижнего почти вдвое превышают потери верхнего ключа.
    • Ды есть у меня такой, вру, чуть по другому называется, такой же ламповый на весь стол аппарат, его  по моему и сжечь не реально , как раз тот случай, когда прибором можно сжечь не спалив сам прибор. а за с1-65А 1100р считай подарок! причем его уже  кто-то купил.
    • Вот честно?- а никак, до половины размаха выходного напряжения. С бОльшей громкостью в квартире кто слушать будет???
    • Что Вы будете переменкой питать? Да и напряжение на С1 неплохо посмотреть если вдруг захочется резонансник замутить.
    • Общая Точка. Точка с нулевым потенциалом. Применительно к плате пусть это будут G3, XS3, XS7. Сейчас у вас ток от С6 (от полигончика) до G3 побежит ещё через R8, R3, C11. Посадите R3, R8 просто на полигон, не соединяя с полосатой дорожкой. Полосатая и будет проводником от полигончика к G3. Можно проводком полигончик с G3 соединить, если не хочется резать полигон большой. С11 тоже можно на полигон немного в стороне. Резистор цобеля - вправо от XS2, С11 вертикально к XS3. Или резистор вертикально вниз от XS2, С11 горизонтально к XS7. R6, R7 соединить так, чтобы ток от R7 к R6 не бежал через эмиттер Т3 (а там ведь ещё ток - от ГСТ). Короче - как на схеме. Остальное, вроде, пойдёт. Хотя, покрутить детальки ещё можно. И выровнять симметричные дорожки (для красиво). Убрать уши в выпрямителях к центру платы.

  • Светодиодная лента, 50см-5м, 5В

  • Similar Content

    • By dodik
      Необходимо разработать программу-конвертер для установщика компонентов TVM802
      из формата Proteus ( дан в приложении) в формат  .csv 
      информация тут :
      https://mysku.ru/blog/taobao/66380.html
      Аналогичная разработка https://github.com/nica-f/tvm802-mdgen
      Начальная стоимость ... пусть будет 5т. руб . Торг уместен .
      Конкретные предложения лучше присылать в личку .
       
      proteus.PKP
    • By Евгений61
      Уважаемые знатоки языка Си. К Вам такой вопрос.
      Имеется функция на языке Си. В этой функции содержится одна статическая переменная. Проблема в том что каждый вызов этой функции отвечает за разный выполняемый алгоритм.
      Что бы было понятнее делаю таймер с задержкой включения в котором сохраняется время для каждого таймера. Вопрос состоит в том как можно сделать, чтобы при вызовах этой функции значения статической переменной были свои для каждого вызова.
      Или только писать две одинаковые функции с разными переменными?
    • By Andrey Gressikov
      Я начинающий программист, пытаюсь программировать микроконтроллеры в среде АВР.
      У меня возник вопрос, вот например у нас есть двоичная система исчисления где 3 мы можем записать так:
      00000011, однако чтобы подать логическую 1 на третий порт микроконтроллера мы должны сделать следующую запись
      PORTC=00000100, т е существует некая разница между названиями портов и системами исчисления, в таком случае как мне используя 16 ричную систему исчисления подать напряжение на какую либо ногу порта.Я знаю что данная запись 0х01 подает логическую 1 на 0 ногу, а данная запись 0х10 на 4 ногу ,ну а как быть дальше?
      Как подать напряжение на 5 ногу порта? Если я в чем то заблуждаюсь - поправьте, если чего то незнаю расскажите.
      Заранее благодарю. 
    • By Anton K
      Подскажите схему/код "ограничителя нарпяжения"  на уровне 3.5в,  на Attiny13 для фонарика питание от Li-ion.

      int i = 126; void setup() { analogReference(INTERNAL); pinMode(0, OUTPUT); // Задаем напругу pinMode(A2, INPUT); //Замеряем напругу } void loop() { analogWrite(0, i); if (analogRead(A2) < 500 ) { //Если напряжение меньше заданного, уменьшаем скважность ШИМ i = i - 1; } if (analogRead(A2) > 500 ) {//Если напряжение больше заданного, увеличиваем скважность ШИМ i = i + 1; } } В результате выдает 2,5 вольт и никак не реагирует на задание analogRead(A2) 
       
    • By griin
      Купил на аллиэкспресс wifi выключатель. Установил программу, опробовал. Все работает. Вопрос - Как подсмотреть протокол обмена командами.(т.е. на каком порту, HTTP....?)
×
×
  • Create New...