retcom

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

18 сообщений в этой теме

retcom    0

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

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

2.

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

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

3.

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Duhas    35

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
retcom    0
скорсоть с двух сторон должна быть одинакова это рас, и два она зависит от частоты задающего генератора мк

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
retcom    0

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
UTSource

Найдите миллионы труднодоступных

электронных компонентов

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

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

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

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

char c;

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

//тут с = 'М'

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
retcom    0

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
retcom    0

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
retcom    0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Speccy    3

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. непонятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
retcom    0
1. непонятно.

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

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

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

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

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Duhas    35

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

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Duhas    35

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

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

Поделиться сообщением


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

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

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

post-20311-1181543919_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
retcom    0

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
serg    1
Привет! Подскажите, пожалуйста:

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

2.

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

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

3.

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

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

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

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

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
retcom    0
Проще напиши чего хочешь зделать, отсюда и попляшем

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

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

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

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

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

Поделиться сообщением


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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас