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

Вопросы от начинающих по МК


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

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

В самом языки С не очень много подводных камней, но даже в стандартных библиотеках... вся империя языка наверно построена на этих самых подводных камнях, на них-то и обламываются асембрерщики которые привыкли к детерминированному выполнению программы - как написал так она и будет работать. Для того чтобы достичь такого же эффекта от программы на С - нужно досконально выучить все подводные камни стандартных библиотек и компилятора. А разнообразие несовместимых компиляторов под С... это просто ужас. В итоге имеем такое невероятное разнообразие диалектов языка, что понятное дело асемблерщики просто теряются. Но это ведь не круто иметь по факту язык весь в костылях на котором поведение программы заранее предсказать невозможно. Ну возможно, программа уровня "Хелло ворлд" и не вылетит с ошибкой на большинстве систем...

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

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

  • Ответов 8,9т
  • Создана
  • Последний ответ

Топ авторов темы

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

Любой, заслуживающий внимания, опыт приобретается себе в убыток...

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

...а что за потроха и ассма

Потрха - внутренности, т.е. архитектура МК.

Ассм - ассемблер.

А теперь заткни уши и начинай изучение.

Ничего плохого в изучении Ассемблера нет (одни плюсы), это позволит ЛУЧШЕ понять МК и ЛУЧШЕ ими управлять. По мне, так лучше чуть-чуть дольше писать код, чем покупать более "мощный" (якобы) МК, чтобы впихнуть в него раздутый код. И никакой зависимости от библиотек.

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

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

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

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

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

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

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

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

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

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

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

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

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

Немогу выставить фьюз в пони-прог RSTDISBL...

А оно вам надо?.. Если таки да, то не одной поней ограничивается круг программаторов.

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

Любой, заслуживающий внимания, опыт приобретается себе в убыток...

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

Сколько помню в ISP-режиме он неактивен из соображений безопасности, как и SPIEn, потому что после их изменения повторно прошить контроллер невозможно. Высоковольтные программаторы перепрошивать этот фуз умеют.

По теме - я бы предложил изучить отдельно Си для компьютеров, чтобы привыкнуть к синтаксису и принципам работы. И, отдельно, ассемблер для контроллеров, чтобы познакомиться с архитектурой. На определенном этапе станет понятно и как пользоваться Си в контроллерах.

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

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

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

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

Нужно взять другую программу способную работать с имеющимся программатором.

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

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

Нет никакой заслуги тому, кто даёт золото, думая, что даёт камень (Будда)

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

фото с экрана.rarДобрый вечер.Скачал Uniprof и CodeVisionAVR.Сделал два програматора,http://cxema.at.ua/b...t/2011-10-28-11 и http://easyelectroni...llerov-avr.html.Пробовал прошить,так у обоих какие-нибуть проблемы.Все проверил,пересмотрел,все правильно собрал.С Codevision еще несовсем разобрался а в Uniprof кроме табличик еще вкладка фьюзов пустая.Я так понял что МК невидит вот и пустая.Но пробовал читать-читает,пробовал стирать-стирает но не шьет.Блин что нетак делаю,помогите!!!!
Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте.Такая проблема- пользуюсь програматором stk200/300.Шью через BASCOM-AVR. Не получается включить фьюс DOG. любой hex файл шьется на ура,все работает.Но как только выставляешь этот фьюс, то получается полная ахинея.До прошивки,после прошивки.Не важно.Но если после этого опять подключиться и снять галочку,то все работает.

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

Запах канифоли-вот мой кислород,вот мой загородный воздух!

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

Ух ты,А дальше как? выставил,куда нижние данные вводить?Поставил галочки Serial program downloading (SPI) enabled; [sPIEN=0] и Watch-dog Timer always on; [WDTON=0]

Контроллер Atiny13A получилось low 0x5A и High 0xFF. Что с этими данными делать? И да,зачем такое большое колличество выбора осцилятора?По несколько раз?Или это еще на какие то фьюзы влияет?

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

Запах канифоли-вот мой кислород,вот мой загородный воздух!

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

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

Для разных прог разные способы ввода фьюзов

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

предположим вод Hex файл из Flowcode с простым морганием светодиодом ,как сюда что добавить?

:1000000009C016C015C014C013C012C011C010C062

:100010000FC00EC011241FBECFE9CDBF10E0A0E677

:10002000B0E001C01D92A138B107E1F702D047C08E

:10003000E7CF14BE88E10FB6F89481BD11BC0FBEA6

:1000400040E659E0BA9AC29A20E0CA010197F1F756

:100050002F5F2A3FD1F720E0CA010197F1F72F5F08

:100060002A3FD1F720E0CA010197F1F72F5F2A3F1D

:10007000D1F720E0CA010197F1F72F5F2A3FD1F7AE

:10008000BA9AC29820E0CA010197F1F72F5F2A3F80

:10009000D1F720E0CA010197F1F72F5F2A3FD1F78E

:1000A00020E0CA010197F1F72F5F2A3FD1F720E046

:1000B000CA010197F1F72F5F2A3FD1F7C3CFF89418

:0200C000FFCF70

:00000001FF

Запах канифоли-вот мой кислород,вот мой загородный воздух!

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

Причем тут некс файл..

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

Вы привязали на ногу ресета выход, которым будете мигать диодом, тогда вам необходимо отключить RSTDISBL фьюз.

Допустим делитель в программе равен 8, тогда фьюз DIV8 нужно включить... И так далее

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

Деление на 8 не использую.Осцилятор прописываю внутренний 9.6.Ножку ресет не использую как порт ввода вывода

Вот сишный файл

//************************************************************************************

//**

//** File name: F:\Proba\Proba.c

//** Generated by: Flowcode v4.3.6.61

//** Date: Thursday, January 23, 2014 16:12:16

//** Licence: Professional

//** Registered to: 20ACM8

//**

//**

//** http://www.matrixmultimedia.com

//************************************************************************************

#define MX_AVR

//Defines for microcontroller

#define MX_AVR

#define MX_TINY

#define MX_EE

#define MX_EE_SIZE 64

//Functions

#define F_CPU 9600000UL

#include <stdlib.h>

#include <stdio.h>

#include <math.h>

#include <avr\io.h>

#include <avr\interrupt.h>

#include <avr\eeprom.h>

#include <avr\wdt.h>

#include <MX_util\delay.h>

#include <MX_util\bit_cmds.h>

//Configuration data

#pragma DATA 0x0, 0xdf

#pragma DATA 0x1, 0xff

//Internal functions

#include "C:\Program Files\Matrix Multimedia\Flowcode AVR V4\FCD\internals.h"

//Macro function declarations

//Variable declarations

volatile char FCV_B1;

volatile char FCV_SCHET;

volatile char FCV_B2;

volatile char FCV_B3;

volatile char FCV_B4;

volatile char FCV_B5;

volatile char FCV_U_INPUT;

volatile char FCV_B6;

volatile char FCV_B7;

volatile char FCV_BIT;

volatile char FCV_B0;

//Macro implementations

int main()

{

//Initialisation

MCUSR=0x00;

wdt_disable();

//Interrupt initialisation code

//Loop

//Loop: While 1

while (1)

{

//Output

//Output: 1 -> B2

DDRB = DDRB | 0x04;

if (1)

PORTB = (PORTB & 0xfb) | 0x04;

else

PORTB = PORTB & 0xfb;

//Delay

//Delay: 1 s

delay_s(1);

//Output

//Output: 0 -> B2

DDRB = DDRB | 0x04;

if (0)

PORTB = (PORTB & 0xfb) | 0x04;

else

PORTB = PORTB & 0xfb;

//Delay

//Delay: 1 s

delay_s(1);

}

mainendloop: goto mainendloop;

}

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

Запах канифоли-вот мой кислород,вот мой загородный воздух!

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

в таком случае читаем фьюзы чистой микрухи и не меняем их

по умолчанию тинька 13 использует внутренний генератор

другое дело, что не уверен, что без камня тинька13ч выдержит 9,6 мегагерц.

судя по прграмме, Вам не обязателена такая частота - поставьте 1 мегагерц, тогда проблем не будет точно

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

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

По умолчанию фьюзы были Serial program downloading (SPI) enabled; и Divide clock by 8 internally;

Или мне надо было флеш память чистой Тиньки считать?

Можете пожалуйста по подробнее рассказать весь процесс,а то без DOG будет тяжко,всплесков много бывает и зависает. И прога будет не эта использоваться.Будет слежение за сигналом,и соответствующее переключение клапанов .Настройки такие же,то есть 9.6Пробовал на тиньке блок управления вытяжной вентиляцией,частоту выставлял тоже 9.6 Конструкция вродь до сих пор работает. Сишный файл выше который был для примеру просто.

Запах канифоли-вот мой кислород,вот мой загородный воздух!

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

Я и говорю, что по умолчанию 1 000 000 Герц, так как есть деление на 8.

Берем "девственную" тиньку 13ю и считываем ее, так же как вы считываете прогу - смотрим на фьюзы и не меняя их заливаем нашу прогу...

Касательно нестабильного поведения, то оно может появляться при понижении/просадке по питанию ниже минимального,

Смотрите первую страницу пределов питания и тактовой частоты здес

http://www.atmel.com/images/doc2535.pdf#page25

Правильно говорить 9 600 000 Герц деленное на 8 получим 1 200 000 герц

Ну а если все же желание иметь 9,6 то убираем/ставим галочку на фьюзы DIV8

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

То что ты прописал в программе - это ты сказал программе что считай все задержки для этой частоты ни больше ни меньше.

А уже фьюзами ты конфигурируешь железо - задаешь режим работы тактового генератора и т.д.

Вач-дог можно запустить в самой программе - алгоритм старта не сложный. Главное определить реакцию на событие вач-дога, он может вызвать прерывание и если оно не отработает к следующему прерыванию - контроллер сбрасывается, а может сразу сбросится. Так же надо настроить делитель вач-дога, чтобы он работал с нужным периодом - может ты его не успеваешь сбрасывать и программа зацикливается на инициализации - не закончила подготовительные действия а уже сработала собака и начинай сначала... И в программе его надо постоянно сбрасывать командой WDR, чтобы не сработал.

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

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

И я ничего не прописывал в программе,это Flowcode .Просто для понимания алгоритма . Я пока учусь с легкого.Параллельно начинаю читать книгу Мортона.По поводу сброса : скорее всего так и есть,потому что я ничего не прописывал по поводу дога.На примере выше выложенного сишного файла можете показать как прописывать дога?Полный цикл моей програмки с запасом 6-7 мс. последняя 1 мс. просто задерка .Можете показать пример как сбрасывать таймер дога,и как уходить на сброс контроллера по истечении цикла? Буду очень благодарен.

Я и говорю, что по умолчанию 1 000 000 Герц, так как есть деление на 8.

Берем "девственную" тиньку 13ю и считываем ее, так же как вы считываете прогу - смотрим на фьюзы и не меняя их заливаем нашу прогу...

Касательно нестабильного поведения, то оно может появляться при понижении/просадке по питанию ниже минимального,

Смотрите первую страницу пределов питания и тактовой частоты здес

http://www.atmel.com...2535.pdf#page25

Правильно говорить 9 600 000 Герц деленное на 8 получим 1 200 000 герц

Ну а если все же желание иметь 9,6 то убираем/ставим галочку на фьюзы DIV8

Да но если ставить галочку на деление на 8,то соответственно все процессы тоже замедлятся в 8 раз? Изменено пользователем TaRaKaN

Запах канифоли-вот мой кислород,вот мой загородный воздух!

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

Работаю с код вижион авр

Ну а вам смотреть тут

http://www.atmel.com/images/doc2535.pdf#page44

Там прерывание по истечении Дог Таймера и собственно в прерывании делайте любой сброс, вплоть до отключения самого Таймера

Но зачем это!?

Я просто пытаюсь сказать, если открыть даташит, то там на первой странице написаны диапазон тактовых частот в зависимости от питания,- ниже питание,- ниже тактовая частота.

Другими словами глюки, как сброс программы, зависание может происходит по просадке питания... Кондор по питанию электролит в схеме есть?

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

Ну почему:

Пишем

#define F_CPU 1200000UL

И соответственно все вызываемые блоки будут компилироваться с базовой частотой 1,2

А в баскоме как указать? reserved 1010? Собственно уменьшал частоту, начало все медленно работать,меня это не устраивает,может для моргалки со светодиодом и пойдет,но мне для серьезного блока надо по шустрее.

Работаю с код вижион авр

Ну а вам смотреть тут

http://www.atmel.com...2535.pdf#page44

Там прерывание по истечении Дог Таймера и собственно в прерывании делайте любой сброс, вплоть до отключения самого Таймера

Но зачем это!?

Я просто пытаюсь сказать, если открыть даташит, то там на первой странице написаны диапазон тактовых частот в зависимости от питания,- ниже питание,- ниже тактовая частота.

Другими словами глюки, как сброс программы, зависание может происходит по просадке питания... Кондор по питанию электролит в схеме есть?

конденсатор по питанию 470 мкф и 0.1 до кренки и 470 и по 0.1 после кренки.Скажем так иногда виснет в момент включения,просто возможны нч всплески,вплоть до кратковременного пропадания напряжения питания,вот в эти моменты глючит,даже RC цепь на ресет не всегда спасает.Поэтому очень надо.И еще хочу поставить внешний вачдог, на выходе есть стабильный прямоугольник где то 166 герц,скважность 3..Как можно реализовать схему слежения за параметрами сигнала?

Запах канифоли-вот мой кислород,вот мой загородный воздух!

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

собаку надо сбрасывать командой WDR до истечения таймаута. Какой таймаут установлен у собаки если ничего не трогать - надо смотреть даташит его управляющий регистр.

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

С таким подходом рано программы писать... да и куда шустрее-то, если ты тупо задержки гоняешь? Твой алгоритм прекрасно будет работать и при тактовой частоте 1кГц.

Неужели ты не понимаешь, что делает строчка #define F_CPU 9600000UL в твоём исходнике?

Откуда процедура delay знает сколько тактов нужно прощелкать? неуж-то компилятор телепатией обладает....

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

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

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

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

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

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

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

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

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

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

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

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

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