roboforum.ru

Технический форум по робототехнике.
Текущее время: 01 ноя 2024, 18:17

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 118, 119, 120, 121, 122, 123, 124 ... 144  След.
Автор Сообщение
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 09 ноя 2010, 02:47 
Не в сети

Зарегистрирован: 27 авг 2008, 10:45
Сообщения: 1981
Откуда: Харьков
прог. языки: С/С++
А чего, такого чуда как внешние метки кодевиженский ассемблер не понимает? Гнутый скажем ассемблер все неизвестные метки считает внешними. Так что из ассемблерного файла "видны" сишные переменные и функции. И не надо как в каменном веке адреса ручками писать (и вообще знать, куда потом линкер какие переменные сложит)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 17 ноя 2010, 21:19 
Не в сети

Зарегистрирован: 18 окт 2009, 12:36
Сообщения: 22
Откуда: Самара
Проблема с AT45db161
Использую 8выводную версию в SOIC. Питание 3.5 ( и для памяти и для МК).
Почему то при откл. - вкл. питания в СТРАНИЦУ 1 (вторую то есть) пишется какой-то мусор поверх моих данных. что делать?
Хидер для памяти использую от avr123(спасибо :)).

Подскажите что в хидере и как надо поменять чтобы запись и чтение новой информации начиналась с 3ей страницы всегда?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 09 фев 2011, 20:14 
Не в сети

Зарегистрирован: 09 дек 2010, 15:04
Сообщения: 8
Здравствуйте, я хотел узнать: как рассчитать какая будет задержка между вызовом прерываний от таймера при частоте генератора 7МГц?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 09 фев 2011, 20:15 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Какую настроите, такая и будет. Вопрос бессмысленный.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 09 фев 2011, 20:28 
Не в сети

Зарегистрирован: 09 дек 2010, 15:04
Сообщения: 8
Ладно, нужны формулы для расчета констант для таймера T0 Attiny13 или калькуляторы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 09 фев 2011, 21:29 
Не в сети
Аватара пользователя

Зарегистрирован: 01 июл 2009, 08:59
Сообщения: 2253
Откуда: Екатеринбург
прог. языки: асемблер AVR
Цитата:
как рассчитать какая будет задержка между вызовом прерываний от таймера при частоте генератора 7МГц


Судя по вопросу, вы - новичок, поэтому я отвечу тоже "на пальцах". Таймер - такая штука, которая может считать тактовые импульсы и внешние импульсы. Остановимся пока на тактовых. Он считает их от того значения, которое в нем загружено (если обнулить таймер - то от нуля) до максимально возможного числа (если это 8 битный - то до 255, если 16 битный - то до 65535). У таймера есть такая штука, называется предделитель. Грубо говоря, он определяет каждый ли тактовый импульс надо считать. Можно считать каждый такт, можно каждый восьмой, шестнадцатый, шестьдесят четвертый, двести пятьдесят шестой, тысяча двадцать четвертый. Также у таймера есть несколько прерываний, вас пока интересуют прерывания по переполнению. Это прерывание надо разрешить в регистре масок прерываний таймеров. Также надо разрешить глобальные прерывания. Только после этого когда таймер переполнится, программа уйдет на вектор обработки прерывания от таймера. Соответственно там должен стоять безусловный переход на подпрограмму обработки прерывания, которая заканчивается не простым возвратом, а возвратом из прерывания.

Этой информации достаточно. Теперь вы можете все рассчитать сами. Удачи.

Добавлено спустя 1 минуту 53 секунды:
kalexi писал(а):
нужны формулы для расчета констант для таймера T0 Attiny13 или калькуляторы.


Калькуляторы не нужны, а формулы выводятся при наличии понимания сути.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 10 фев 2011, 00:30 
Не в сети

Зарегистрирован: 09 дек 2010, 15:04
Сообщения: 8
2Radist
Спасибо за столь полный ответ, но к сожалению я это знаю. Просто есть одна проблема.
Допустим у меня ATtiny13 с 8-разрядным таймером, частота внутреннего генератора 1МГц.
Следовательно если OCR0A=200 и предделитель отключен, кол-во прерываний насчитывается следующим образом:
1 000 000Гц / 200 = 5 000Гц = 5Кц.

Теперь в Протеусе я запускаю симуляцию, но в динамиках слышу щелчки.

Добавлено спустя 4 минуты 15 секунд:
А, все, проблема решена. Просто не знал, что Протеус по умолчанию ставит частоту генератора равной 9,6Мгц.

Добавлено спустя 4 минуты 3 секунды:
Кстати, хотел спросить: нужно ли в основном цикле что-то писать (ну для уменьшения нагрузки на процессор), а то я видел функцию следующего вида, вот и пришла мне в голову эта мысль:
Код:
void sleep(){ int i; for (i=0; i; i++);}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 26 фев 2011, 22:42 
Не в сети
Аватара пользователя

Зарегистрирован: 12 янв 2009, 21:39
Сообщения: 1266
Откуда: Чебоксары, Чувашская Республика
Skype: roman.buhalov
прог. языки: Basic, VisualBasic,Pascal, Delphi, ASM
ФИО: Роман Сергеевич
Ребят, а у меня 5 проводков прошивает atmega8 без питания контроллера - ЭТО НОРМАЛЬНО?

Добавлено спустя 15 секунд:
и читает и стирает и записывает

_________________
«Это невозможно» — сказала Причина. «Это безрассудно!» — заметил Опыт. «Это бесполезно!» — отрезала Гордость.
«Попробуй» — шепнула Мечта…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 27 фев 2011, 00:27 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Не хорошо так делать.
Паразитная запитка через защитные диоды.

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 05 мар 2011, 01:05 
Не в сети

Зарегистрирован: 05 мар 2011, 01:01
Сообщения: 4
Здравствуйте. Нужно сделать аппаратный ШИМ на Attiny2313. Немного почитал разные источники и вроде сделал 8-битный Fast PWM. Проверьте все ли правильно. Если да, то как мне сделать ФНЧ для этого ШИМа. Вообще задача состоит в том, чтобы управлять скоростью моторчиков у "робота".
Код:
   #define F_CPU 8000000UL  // указываем частоту в герцах
   
   #include <avr/io.h>
   #include <util/delay.h>

int main(void) // начало основной программы
{
   
   TCCR1A = (1<<COM1B1) | (1<<WGM10);
   TCCR1B = (1<<WGM12) | (1<<CS10);
   OCR1B = 50;
   DDRB |= (1<<PB4);
   
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 09 мар 2011, 20:31 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Зачем же ФНЧ для мотора ? Мотор сам является ФНЧ. ШИМ подайте на ключ как в задаче курса про ШИМ показано - http://www.proavr.narod.ru/z08.htm

А код проверьте в PROTEUS ! http://www.proteus123.narod.ru - И всегда его используйте. Там и модели моторов есть и привод с ОС ПИД есть.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 18 мар 2011, 15:01 
Не в сети
Аватара пользователя

Зарегистрирован: 15 янв 2011, 11:27
Сообщения: 317
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр
Подскажите, что не так делаю?
Хочу запустить 36 кГц на таймере Attiny2313! С частотой вроде подгадал в протеусе с помощью ICC))) Почему, когда ногу конфигурирую ногу на вход на ней есть 1?
Код:
#include <TINY2313.H>
#include <delay.h>
#define ON_IR  DDRB.3 = 1
#define OFF_IR DDRB.3 = 0
void main(void)
{
PORTB = 0x00;
DDRB  = 0x09;
PORTD = 0x00;
DDRD  = 0x20;

//TCCR0B = 0x00; //stop timer   С Таймером_0 какие то странности
//TCNT0 = 0x91; //set count
//OCR0A = 0x6F; //set count
//OCR0B = 0x6F; //set count
//TCCR0A = 0x50; //start timer
//TCCR0B = 0x01; //start timer

TCCR1B = 0x00; //stop timer
TCNT1H = 0xFF; //set count value
TCNT1L = 0xE4;
OCR1AH  = 0x00; //set compare value
OCR1AL  = 0x1C;
OCR1BH  = 0x00; //set compare value
OCR1BL  = 0x1C;
TCCR1A = 0x53;
TCCR1B = 0x11; //start Timer
while (1)
{
ON_IR;
delay_us(600);
OFF_IR;
if (PIND.6 == 0){PORTB.0 = 1;}
else {PORTB.0 = 0;}
delay_us(8000);
}
}

Как бы по красивее сделать?

_________________
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 18 мар 2011, 15:18 
Не в сети
Аватара пользователя

Зарегистрирован: 19 янв 2010, 14:51
Сообщения: 979
Откуда: Петрозаводск
прог. языки: C, FBD, Wiring-Processimg,,,LD, SFC, ST...
ФИО: Вадим
единица будет, если включён внутренний подтягивающий резистор... название регистров не помню, но в ICC есть мастер настройки периферии, посмотрите там чекбоксы внимательно.

_________________
Роботы, уже среди нас...
Прошу прощения за аватар, никак схему динамической индикации не могу настроить :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 18 мар 2011, 16:48 
Не в сети
Аватара пользователя

Зарегистрирован: 15 янв 2011, 11:27
Сообщения: 317
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр
Подтяжка отключена

_________________
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 18 мар 2011, 22:20 
Не в сети
Аватара пользователя

Зарегистрирован: 15 янв 2011, 11:27
Сообщения: 317
Откуда: Челябинск
прог. языки: C/C++
ФИО: Александр
Кажется кусочки мозга уже выходят
Код:
#include <tiny2313.h>
#include <delay.h>
#define ON_IR TCCR0A = 0x50
#define OFF_IR TCCR0A = 0x00
// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Port B initialization
// Func7=In Func6=In Func5=In Func4=Out Func3=Out Func2=Out Func1=In Func0=Out
// State7=T State6=T State5=T State4=0 State3=0 State2=0 State1=T State0=0
PORTB=0x00;
DDRB=0x1D;

// Port D initialization
// Func6=In Func5=Out Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=0 State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x20;

TCCR0B = 0x00; //stop timer
TCNT0 = 0x00; //set count
OCR0A = 0x6F; //set count
OCR0B = 0x6F; //set count
TCCR0A = 0x50; //start timer
TCCR0B = 0x01; //start timer

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// Interrupt on any change on pins PCINT0-7: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Universal Serial Interface initialization
// Mode: Disabled
// Clock source: Register & Counter=no clk.
// USI Counter Overflow Interrupt: Off
USICR=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;

while (1)
      {
      ON_IR;
      delay_us(600);
      OFF_IR;
      delay_us(600);

      };
}

Оттак поехало

_________________
РАБОТА, РАБОТА перейди на Федота, с Федота на его брата, а ко мне их зарплата.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 118, 119, 120, 121, 122, 123, 124 ... 144  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO