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

Финальные результаты тестирования литиевых батареек FANSO при нормальных условиях

Перед разработчиком устройства, в котором предполагается использование батарейки, всегда стоит задача выбора того или иного бренда. Конечно, наиболее объективный результат по качеству можно получить при реальном тестировании в режиме работы самого устройства. Для того чтобы у разработчиков была некоторая информация о реальных значениях основных параметров ЛХИТ, инженеры компании КОМПЭЛ решили провести серию из трех тестов. Первый тест на постоянный разряд в нормальных климатических условиях, начатый в апреле 2019 г., мы завершили.

Узнать финальный результат тестирования

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

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

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
                     

Видеокурс Работаем с микроконтроллерами STM32G0. Впервые на русском языке.

В цикле видеокурсов по работе с STM32G0 от компании STMicroelectronics показаны архитектура, периферия (особенности процессорного ядра, режимов пониженного питания, векторов прерываний, DMA и мультиплексора DMA, схемы тактирования и сброса, и.т.д.) и даны практические примеры. Материал дает наглядное понимание того, как начать работу на новых микроконтроллерах STM32G0

Подробнее

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

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

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

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

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

  • Сообщения

    • Одни верят, что бог есть. Другие верят, что бога нет. ©
    • Появилось время и попробовал поменять трансформатор.Подсоединил его пока на проводах и бп запустился.Напряжение до 22в регулируется.нагружал 10а на 12в,тянет нормально без просадок.Хотя старый трансформатор тоже столько тянул.Просто больше нечем было нагрузить.Получается, что трансформатор подходит.Теперь надо подумать как его присоединить,а то по разводке он не такой.
    • А Вы сами не догадались? Усилить входное напряжение до нужного диапазона, а дальше - сдвиг. ВСЁ!
    • Зато  она  подразумевает большую радость...  Я не хожу по Москве с ножом на постоянной носке... Капусту на улице не рублю... только в магазине. Карандаши на улице не точу, банки на ходу  не открываю и провода не перекусываю.  Для клеммы аккумулятора есть ключ на 10ку, в багажнике... А для винтиков  есть отвёртки, и головки, там же. Нож беру только когда иду за капустой, чтобы срезать листья и кочерыжку.  Почему... я например запросто мог бы принять участие  вот в этой теме...Однако, тему  Фалкониста  посчитал гораздо более интересной и  достойной внимания. Да и вы, как видно, тоже. ЗЫ:  Зато вот в этой теме никогда не смог бы принять участия, наряду с вами... из-за недостатка знаний и интеллекта...   
    • Сразу "изменить", может сначала измерить? Да и круток там не видно, наверное всё по умолчанию задано...
×
×
  • Create New...