Jump to content
retcom

Составные Части Мк Avr

Recommended Posts

Привет! Подскажите, пожалуйста:

1. Для UARTа, скорость передачи, в бодах, ставить в зависимости от каких факторов?

2.

char c;
if(UCR & 0x80) // если УАРТ принял символ от ПК...
с=UDR //сохраним его в переменной "с"

Все символы, по одному, проходят через UDR?

3.

const char SOME_STRING[] PROGMEM = "My_string.\r\"; //добавляем строку во flash память.

Как ее от туда вытащить?

И еще вопросы, может кто знает:

1. Как на асме обратиться к жесткому диску?

2. Как определить емкость конденсатора, чтобы он не пропускал ток определенной НЧ?

Share this post


Link to post
Share on other sites

скорсоть с двух сторон должна быть одинакова это рас, и два она зависит от частоты задающего генератора мк (чтим даташит на мк в области уарта)

по идее да символ = байт передача идет по 1 байту ... тоесть строка передается посимвольно

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

в каком плане вытащить ? код создает в памяти константу под именем SOME_STRING[] содержанием My_string.\r\

сопротивление конденсатора переменному току определяется по формуле 1/W*C, где W - циклическая частота 2пи умножить на обычную частоту если память не изменяет, а C - емкость... вот и считай... но получится не полное непропускание а затухание.. еще лучше организвоать его фильтром порядка повыше .. хотя это когда как....

Share this post


Link to post
Share on other sites
скорсоть с двух сторон должна быть одинакова это рас, и два она зависит от частоты задающего генератора мк

Мне интересно ну например скорость 9600 бод я поставил. Вот почему я ее поставил такую, а не другую,а?

Скорость одинакова у компа и у моего девайса? Как узнать тогда с какой скоростью комп шлет мне символы?

Скорость зависит от частоты задающего генератора, это по максимуму. Я и менбше могу запрограммиравать если мне надо.

Про флэш: Я говорю, ячто кинул стоку в во флэш память, дополнительную. Теперь мне надо ее от туда вытащить. Как это сделать? Кодом?

Про хард: просто захотелось мне написать драйвер харда. Вот и спрашиваю, Какие прерывания и функции на асме отвечают за это. А?

Share this post


Link to post
Share on other sites

Руководство для разработчика приложений на базе STM32WB55

Представив двухъядерные беспроводные микроконтроллеры STM32WB для IoT-приложений, компания STMicroelectronics предлагает разработчикам экосистему, включающую в себя отладочные платы, примеры кода для микроконтроллера, готовое ПО всех уровней и большой массив документации.

Читать статью

Я извиняюсь, я наверно спросил непонятно. Исправляю ошибку:

строка кода добавляет массив в постоянную память:

const char SOME_STRING[] PROGMEM = "My_string.\r\"; //добавляем строку во flash память.

1. Теперь, как мне эту строчку затребовать назад? Или вывести на экран ЖК?

2. Постоянная память как-то разделяется ведь на сектора? Значит есть разметка? Про это можете немного рассказать?

Уточните, пожалуйста, формула R=1/W*C, где W, есть циклическая частота, которая складывается из f*2PI?

Я правильно понял?

Share this post


Link to post
Share on other sites
const char SOME_STRING[] PROGMEM = "My_string.\r\"; //добавляем строку во flash память.

1. Теперь, как мне эту строчку затребовать назад? Или вывести на экран ЖК?

С этой строкой работаете так же, как и с обычным массивом.

----------------------------------

char c;

c = SOME_STRING[0]; //0,1,2...

//тут с = 'М'

----------------------------------

На ЖКИ можно вывести циклом посимвольно, предварительно узнав размер строки.

захотелось мне написать драйвер харда. Вот и спрашиваю, Какие прерывания и функции на асме отвечают за это. А?

Если коротко, то ответ - никакие. И вообще смотря какой хард - сейчас вон их сколько развелось ;)

Если по существу - в инете видел проекты, где IDE-винты подключали к PIC-ам. Их суть, смысл а также ссылки уже не помню. Помню только прикольные фотки этих девайсов ;)

Если по теме - сначала лучше разберитесь с азами.

Edited by error2

Share this post


Link to post
Share on other sites
                     

DC/DC-преобразователи: принципы работы и уникальные решения Maxim Integrated

Что нового можно сказать про DC/DC? Написаны десятки статей, а самостоятельное изготовление преобразователя мощностью от единиц Вт до нескольких кВт даже в домашних условиях не составляет большого труда. Тем не менее, когда речь идет о микро-, или даже нано-ваттах, проектировщик может столкнуться с рядом трудностей. Разработка устройства с батарейным питанием весьма малой мощности – одна из наиболее актуальных и интересных задач во время всепроникающего интернета вещей. А грамотная схемотехника системы питания не возможна без знания основ работы DC/DC преобразователей. Освежить базовые знания и узнать об особенностях проектирования узлов питания мобильного устройства с оптимальным энергопотреблением можно из следующей статьи

Подробнее

Понятно. Единственно, что осталось:

значит размечать постоянку не надо? или нельзя?

Если нельзя, значит этот процесс уже вшит?

Если можно, но не делается явно, значит разметка создается автоматически? По имени указателя, указывающего на набор байт?

Share this post


Link to post
Share on other sites

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

1. В коде, дополнительно, дублировать инициализацию частей МК учавствующих в работе?

2. Таймеры/счетчики. В каждом МК их несколько. Если по функциональности, при каких обстоятельствах задействовать тот или иной? Что делает Т/С? Какая его оснавная функция?

3. Какова функция ШИМ и в зависимости от каких нужд используется?

Share this post


Link to post
Share on other sites

Здравствуйте! ПОЖАЛУЙСТА, ответьте на вопросы! Вы не отвечаете, думаете, что я ленивый? НЕТ! :huh: Это не так! :huh: Я читаю много литературы по МК. Вопросы какие я задаю, это общие вопросы, они нужны мне, как стенам нужен фундамент. Мне нужно связать все общности. Я ведь конкретику не спрашиваю, я ее сам постигаю, пожалуйста! :huh:

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

1. В коде, дополнительно, дублировать инициализацию частей МК учавствующих в работе?

2. Таймеры/счетчики. В каждом МК их несколько. Если по функциональности, при каких обстоятельствах задействовать тот или иной? Что делает Т/С? Какая его оснавная функция?

3. Какова функция ШИМ и в зависимости от каких нужд используется?

Добовляю новые вопросы. :rolleyes: , Поверте, Вы от меня не отделаетесь.

Маска прерывания - как это понять?

Что такое маска перрывания, как используется?

Нарастающий фронт, ниспадающий фронт:

При каких условиях возникает, где используется, что дает разработчику использование этого?

Что можно делать с таймером/счетчиком?

Регистр совпадения таймера/счетчика.

Какую функцию выполняет?

Синхронный режим и асинхронный режим Т/C.

Чем отличаются? При каких условиях пользоватся тем или иным?

Share this post


Link to post
Share on other sites

1. непонятно.

2. таймер/счётчик, судя по названию, может выполнять две функции: это либо таймер, либо счётчик событий.

В любом случае это некое двоичное слово разрядности N (обычно 8 или 16 бит), и свойства его программируются через регистр управления им.

Что это будет? Таймер, счётчик, какие ситуации будут возникать при переполнении слова (достижения им заданного пользователем значения), какова реакция на внешнее событие, и многое прочее, зависит от внутренней организации т/с внутри МК. Всё это выясняется из даташита.

Соответственно, в зависимости от задачи выбирается режим работы т/с. Отмерять промежутки времени, или подсчитывать внешние события - всё на твоё усмотрение.

3. ШИМ - широтно-импульсная модуляция. Другими словами ты можешь управлять скважностью периодического сигнала. Версий управления ШИМом в одном МК может быть несколько.

Допустим таймер это 8-битное слово TIME, синхронизация - внутренняя, период сигнала равен длительности изменения TIME от 0 до переполнения.

Ширина импульса за период задается словом END. Выход ШИМ - бит-порт Z. Изначально TIME=0.

Вот эквивалентный алгоритм (неточный но поясняющий):

3.1 Z:=1;

3.2 TIME:=TIME+1;

3.3 if TIME=END then Z:=0;

3.4 if TIME<>256 then goto 3.2

3.5 TIME:=0

3.6 goto 3.1

4. Маска прерывания нужна для того, чтобы маскировать прерывания. Регистр управления разрешениями прерываний это и есть маска. Хочешь запретить прерывание - накладываешь на него маску (сбрасываешь соотв. управляющий бит). Бывают маскируемые и немаскируемые прерывания.

5. Передний фронт, задний фронт. Он есть у периодического сигнала. Везде используется. Хоть считай их, хоть синхронизируйся от них.

6. с Т/С можно делать ВСЁ! Запрограммируй его и жди от него прерывания. Очень занимательная вещь.

7. Регистр совпадения? См. п.6. Разница в том, что в п.6 прерывание возникнет по переполнению, а в этом случае при достижении Т/С содержимого регистра совпадения.

8. непонятно.

Share this post


Link to post
Share on other sites
1. непонятно.

Это мой глюк, не обращайте внимания и не отвечайте.

1. Можете привести пример использования ШИМ, когда он необходим позарезу? И другой пример, нейтральный, тоже, пожалуйста, раскажите.

2. ШИМ позволяет продлить/урезать импульс? Это используется для управления перефирией?

8. непонятно.

3. В чем отличие синхронного и ассинхронного режима? Когда выбирать, какой использовать?

4. Использование T/C1 -2 -3 -4, осуществляется в зависимости от того, сколько бит мне надо задействовать? 8 или 16?

5. И еще, любой из них может делать все, в любом случае, что мне надо от него, в зависимости от его функций?

6. Много T/C в МК вставляют, что бы сделать его "круче"?

7. Порты. Если они работают на вход, когда ставить высокоомное сопротивление, а когда нагруженное резистором?

Передний фронт, задний фронт. Он есть у периодического сигнала. Везде используется. Хоть считай их, хоть синхронизируйся от них.

8. Приведите, пожалуйста, пример переднего и заднего фронтов

Share this post


Link to post
Share on other sites

хех про т\с не расскажу а вот про фронты можно и самому догадаться.. сигнал у нас имеет 2 значения ноль и единица.. дак вот к примеру чтение битов на шине может происходить по одному ищз фронтов... а именно либо по переходу из 0 в 1 либо наоборот... соотв. передний и задний...

Share this post


Link to post
Share on other sites
хех про т\с не расскажу а вот про фронты можно и самому догадаться.. сигнал у нас имеет 2 значения ноль и единица.. дак вот к примеру чтение битов на шине может происходить по одному ищз фронтов... а именно либо по переходу из 0 в 1 либо наоборот... соотв. передний и задний...

Именно сам переход из 0 в 1 и из 1 в 0, или именно чтение с шины 1 и 0?

Share this post


Link to post
Share on other sites

на сколько я помню то по русски переход с 0 в 1 есть фронт или Rising edge, переход же из 1 в 0 - спад иначе Falling edge... имеется ввиду сам факт изменения состояния.. пример: вешаем кнопку на вход внешнего прерывания контроллера... кнопка замыкает пин на землю.. а сам пин подтянут к +5в, если сконфигурировать прерывание по изменению сигнала на входе то за1 нажатие произойдет 2 прерывания... во время нажатия будет спад сигнала.. и во время отпускания фронт... но можно конфигурировать прерывания по фронту или спаду.. таким образом можно получать прерывания 1 раз за нажатиеи при этом либо при нажатии либо после отпускания кнопки...

вообще вы с реальными МК работали? если нет и таквых под рукой нету советую завести себе прогу Proteus и побаловаться со всем что интересует...

Share this post


Link to post
Share on other sites
хех про т\с не расскажу а вот про фронты можно и самому догадаться.. сигнал у нас имеет 2 значения ноль и единица.. дак вот к примеру чтение битов на шине может происходить по одному ищз фронтов... а именно либо по переходу из 0 в 1 либо наоборот... соотв. передний и задний...

Именно сам переход из 0 в 1 и из 1 в 0, или именно чтение с шины 1 и 0?

Вот так примерно...

post-20311-1181543919_thumb.jpg

Share this post


Link to post
Share on other sites

Все. Понял. Спасибо. Огромное.

Сейчас с программатором определюсь, и посмотрим, кто есть самый крутой микроконтрольщик. :-)))

Share this post


Link to post
Share on other sites
Привет! Подскажите, пожалуйста:

1. Для UARTа, скорость передачи, в бодах, ставить в зависимости от каких факторов?

2.

char c;
if(UCR & 0x80) // если УАРТ принял символ от ПК...
с=UDR //сохраним его в переменной "с"

Все символы, по одному, проходят через UDR?

3.

const char SOME_STRING[] PROGMEM = "My_string.\r\"; //добавляем строку во flash память.

Как ее от туда вытащить?

И еще вопросы, может кто знает:

1. Как на асме обратиться к жесткому диску?

2. Как определить емкость конденсатора, чтобы он не пропускал ток определенной НЧ?

Проще напиши чего хочешь зделать, отсюда и попляшем ;)

А остальноке по ходу дела поймёшь)

Edited by serg

Share this post


Link to post
Share on other sites
Проще напиши чего хочешь зделать, отсюда и попляшем

А остальноке по ходу дела поймёшь)

Я хочу разобраться с графикой на машинном уровне.

Очень многое я уже знаю. Осталось узнать меньше чем я уже знаю.

Мне интересен хард и видюха. Плюс взаимодействие.

Короче я разобрался уже. Осталось только практика. Чем я сейчас и займусь.

Share this post


Link to post
Share on other sites

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...

  • Сообщения

    • Explay Hit 3g(универсальный) 71х98мм   ----  толщина какая?   Эти батареи для минусовых температур годятся (до -10) ?
    • ес я правильно понял - вы завели питание с моста - посрединке- между кондеров  она вообще не правильно разведена - у вас и будут такие горки по питанию
    • только ПСИХИАТРУ про ЭТО не говори ... сразу рученьки за спинкой свяжут ... "Голоса и звуки" - это уже не шутка ... 
    • чуть задерживается эт дело, собрал светильник - позже скину в корпусах и правильный расчет обмотки с кондером тоже - извиняюсь за не достоверную инфу) , вынес мне немного мозг- по своей не опытности в основном , расчет выше на 12 вольт - по факту выскочило 30 - не обратил на это внимание сразу - пожог пару МС и транзисторов - почему такое расхождение с расчетом - подскажите ? .на фото ослик с нагрузкой 3 А - напряжение холостого на стоке 460 вольт , можно еще чуть увеличить сопротивление затвора и убавить - не стал и проводить опыты тоже  - нет времени, греется кстати намного меньше с расчетной обмоткой,  пока занят - к концу недели - по времени - соберем зарядку )
    • а с кошельком? хватит ли на мастера ... Если "хочу сам" - потом выйдет дороже ... ремонт после ремонта ... Твоя дружба с паяльником - годится тазики лудить, а тут - только сделаешь хуже ... Хорошая акустика - не жмись на специалиста ... тогда она еще поживет ... ремонт не так и дорог.
    • так и расскажешь на приемке АСЦ ....
    • Заказал и получил еще партию. Из наличия + остатки :     Аккумулятор 8000mAh, 14.8Wh Explay sQuad 3G 116х159х3,5мм. 235₽ шт.     наличие  8шт. Explay Cinema TV 105х138мм 6000мА/ч. 170₽ шт.   наличие  4 шт. 84х103,5мм 4000мА/ч 10шт./ 120₽     наличие  10 шт Explay Hit 3g(универсальный) 71х98мм 2800мА/ч  60₽ шт.  наличие  около 150 шт. 63*39*5мм1000mA/Ч 3,6V /75₽    наличие 5шт BT60-21 7.4V 2800мА/ч. . Размеры с корпусом-69х198х29мм. Внутри два акк. 2800мА/ч_3,7V, размерами по 160х29х6мм. Плата BMS + PCM  150₽ шт.   наличие  9шт
×
×
  • Create New...