roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 22 дек 2008, 08:43

Да наверно много раз можно. Просто такт программатора должен быть не более 8000 гц.

Re: МикроКонтроллеры начинающим - общие вопросы

BESTWIZARD » 22 дек 2008, 10:34

Понятно, значит тут мне никто не поможет, даже не намекнёт.

Ну ладно а чатстоту в 20 герц можно AVR-ом померять ? Есть ссылка хоть на какую-то принципиальную схемку а ?

Re: МикроКонтроллеры начинающим - общие вопросы

Digit » 22 дек 2008, 10:52

тебе уже 300 раз не то что намекали - прямо и без обиняков говорили. а ты что? :) наводящие вопросы игнорируешь, от прямых - уклоняешься, советами пренебрегаешь, обсуждать отказываешься...

Re: МикроКонтроллеры начинающим - общие вопросы

TrashVigor » 22 дек 2008, 10:54

Ну ладно а чатстоту в 20 герц можно AVR-ом померять ?

можно. это 50мкс. Померять можно любым таймером. Смотря с какой частотой тикает мк.

Re: МикроКонтроллеры начинающим - общие вопросы

Master » 22 дек 2008, 11:37

avr123.nm.ru писал(а):Просто такт программатора должен быть не более 8000 гц.

Я может не совсем понял, но у меня в 5-проводках стоит кварц на 16МГц и очень даже неплохо шьеца.

Re: МикроКонтроллеры начинающим - общие вопросы

RoboTok » 22 дек 2008, 15:18

TrashVigor писал(а): ку ку


Один раз я поставил не правильные FUSE биты и у меня AVR-ка перестала программироваться.
После "плясок с бубном" я выяснил, что частота МК была 100кГц.
Попробовал ввести задержки в программе программатора, довольно большие и прошил заново МК.

Re: МикроКонтроллеры начинающим - общие вопросы

TrashVigor » 22 дек 2008, 19:56

После "плясок с бубном"

У тебя волшебный бубен. Я тож такой хочу.
А я вот не знаю в СVAVR можно задержки делать? Самое интересное что 1мгц на XT1 не выручает.
Накосячил млин я. Нужно было сделать таймер обратного отсчета. Косяк в том что, сделал 32768 гц такт всего мк. Пошарив малость по литературке, оказалось, что можно было сделать проще и лучше. Зашить фьюзы для внутреннего RC-генератора на 1 Мгц(кому нить для справки это SKSEL1 SKSEL2 SKSEL3 SUT0), а в регистр ASSR вкатать 0x08, а TCCR2=0x05. Припаять кварц к ногам TOSC1 TOSC2. И все будет офигенно.

Re: МикроКонтроллеры начинающим - общие вопросы

RoboTok » 22 дек 2008, 20:07

ДА документация мне самому нравится иногда, но это не наш метод имхо.

А бубен вам зачем ?
Я ведь с помощью него узнал частоту, а вы её уже знаете...

Добавлено спустя 2 минуты 57 секунд:
В СVAVR я и ставил задержки.

Кто му же, если МК не захочет прошиваться, то частоту его можно подкорректировать ударом молотка...

Re: МикроКонтроллеры начинающим - общие вопросы

Master » 22 дек 2008, 20:34

Мне в этом отношении нравица ЮСБ программатор, тот о котором тема прилеплена в Микроконтроллерах я с его помощью ваще без кварца шью, там такт идет с ножки я его на XTAL1 завел и все пучком.

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 22 дек 2008, 21:56

TrashVigor писал(а):
После "плясок с бубном"

А я вот не знаю в СVAVR можно задержки делать ?

http://avr123.nm.ru/07.htm - "Все о прошивании AVR" - один разок внимательно прочитать и прошивай потом сколько душе угодно ...

Re: МикроКонтроллеры начинающим - общие вопросы

oleg_harp » 07 янв 2009, 03:42

Уважаемый avr123.nm.ru! Пример из Help CVAVR. Не могу понять почему после первого вызова alfa = 1, а не 2.
Код: Выделить всёРазвернуть
int alfa(void) 
{
/* declare and initialize the static variable */
static int n=1;
return n++;
}
void main(void)
{
int i;
/* the function will return the value 1 */
i=alfa();
/* the function will return the value 2 */
i=alfa();
}

Объясните, пожалуйста, если возможно. Спасибо!
Модератор Сергей:Используй тэг code!

Re: МикроКонтроллеры начинающим - общие вопросы

Master » 07 янв 2009, 03:47

Потому что если бы было написано ++n то да вначале бы n было присвоено значение на единицу большее чем оно есть, а уже потом это значение отправлено как результирующая функции, в примере написано n++, т. е. вначале значение n = 1 возвращено функции, а уже потом к нему добавлена единица.
Не вру, но могу ошибаца.

Re: МикроКонтроллеры начинающим - общие вопросы

oleg_harp » 07 янв 2009, 04:39

Спасибо за ответ в столь поздний час. Новичок в СИ. Это настолько последовательно нужно читать код в СИ? То есть у записи return больший приоритет чем у ++? Ведь ++n эквивалентно n++?

Re: МикроКонтроллеры начинающим - общие вопросы

blindman » 07 янв 2009, 05:44

++n - увеличить на 1, использовать полученное значение.
n++ - использовать значение n, после чего увеличить n на 1.

псевдокод, который поможет понять разницу между n++ и ++n:
Код: Выделить всёРазвернуть
// n++
int nplusplus()
{
  static int n = 1;
  int tmp = n;
  n = n + 1;
  return tmp;
}

Код: Выделить всёРазвернуть
// ++n
int plusplusn()
{
  static int n = 1;
  n = n + 1;
  return n;
}

Re: МикроКонтроллеры начинающим - общие вопросы

oleg_harp » 07 янв 2009, 05:59

To blindman. Спасибо, исчерпывающе.


Rambler\'s Top100 Mail.ru counter