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
                     

CoolGaN - на предельной скорости коммутации!

Решения на галлий-нитриде (GaN) обладают фундаментальными преимуществами перед кремнием. В частности, имея более высокую критическую напряжённость электрического поля, в сравнении с традиционными кремниевыми транзисторами, транзисторы на основе галлий-нитрида обладают выдающимися динамическими характеристиками, что позволяет коммутировать их на высоких частотах. Семейство CoolGaN™ – это именно то, что необходимо, чтобы поднять ваши устройства на принципиально новый уровень. Мы собрали все самые интересные материалы по данной теме на одной странице.

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

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

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

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

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

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

  • Сообщения

    • И все 5 копеек оказались не по теме. Здесь обсуждался вопрос, имеет ли смысл улучшать теплопередачу от нагревателя к жалу паяльника и что это даст? В данном случае при помощи сплава Розе или другого.  А все остальное - это побочные отклонения. И отвертку тоже одну и на все случаи жизни. И молоток заодно...
    • Небольшой сверлильный с блоком питания. Габариты высота 185 мм. Шир. 100 мм. дл. 200 мм. Вес  с блоком питания и шнурами 1.14 кг. У блока питания дополнительный выход 3.3 вольта . Можно организовать подсветку на светодиодах. Сверлом 2.8 мм  дырявит сталь 2 мм . В комплекте одна цанговая вставка . Подходят вставки от китайских цанговых патронов. Продам за 2800 руб. Оплата на карту СБ. .Вышлю почтой . Г. Кемерово.
    • Из не дорогих китайских счас только Т12 паяет нормально. Но если нужен еще и пинцет то нормальные только у фирмы. П.С. лучше один раз нормальную вещь купить и надолго, чем с пяток фигни перепробовать.
    • Это было более 30-ти лет тому назад так что всех подробностей уже не помню.  Эти диоды я точно убрал, заменив перемычкой.  А входной полевик переделал на регулировку входного сигнала как в "сюстейне" .  Как то так. Получилась очень певучая педалька, только шумела зараза. Опереционник  по шумности так себе.
    • Нахрена тогда танцы вокруг ламп, если на вход будет задуваться калечный звук с синезуба, да еще и через паршивый селектор? Люди собирают лампачи с претензией на качество звука (его там как раз так нет, но все же). А долбаться с лампами, а потом подключать синезуб... Странно все это...
    • @тимвал а что делали?-это я к тому,что-бы о граблям не шариться..
×
×
  • Create New...