а как мне управлять частотой, например если мне нужно все это менять в процессе? (подразумевается использовать кнопки и индикатор). Например задал с помощью кнопок кол-во импульсов и период - он тебе их выпустил)
PS очень хороший алгоритм, посмотрел сейчас на виртуальном осциллографе в Proteus'e ...
Найден 21 результат
- Ср мар 09, 2011 16:02:58
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
- Ср мар 09, 2011 15:46:30
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
Гениально, спасибо Вам большое)
- Ср мар 09, 2011 15:22:52
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
ммм...можно пример?
- Ср мар 09, 2011 14:44:58
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
По таймеру: count_T - флаг для обработки временного интервала, т.е. инкрементирование count_T происходит по переполнению таймера (происходит через 500 мкс), из этого следует, что если нам нужен период импульса, например 200 мс, нам нужно чтобы count_T=200 .
По функции: в функцию передаются три ...
По функции: в функцию передаются три ...
- Ср мар 09, 2011 10:05:22
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
Ребят схожу с ума:
Разрабатываю контроллер ШД с указанной связкой в теме.
Требуется получить определенное кол-во импульсов (здесь 10) с определенным периодом (здесь 1 с) на PB3. Таймер настроен на 250 (TCNT=0x06) тактов с делителем на 8 (TCCR0=(0<<CS00)|(1<<CS01)|(0<<CS02), переменная count_T - флаг ...
Разрабатываю контроллер ШД с указанной связкой в теме.
Требуется получить определенное кол-во импульсов (здесь 10) с определенным периодом (здесь 1 с) на PB3. Таймер настроен на 250 (TCNT=0x06) тактов с делителем на 8 (TCCR0=(0<<CS00)|(1<<CS01)|(0<<CS02), переменная count_T - флаг ...
- Чт янв 13, 2011 13:56:43
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
кнопками выставляем значение на нижнем индикаторе, кнопкой count вычитаем единичку)
- Ср янв 12, 2011 20:51:09
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
зачем так ругаться на мой вымученный алгоритм?))
Объясняю:
1.В функцию я передаю массив. т.к. я же хочу с ним работать))
2.tick - да, ошибся) Присваивался только для проверки, т.к. этот тик получается в процессе выполнения программы: bsd=step[4]*1000+step[5]*100+step[6]*10+step[7]; и передается в ...
Объясняю:
1.В функцию я передаю массив. т.к. я же хочу с ним работать))
2.tick - да, ошибся) Присваивался только для проверки, т.к. этот тик получается в процессе выполнения программы: bsd=step[4]*1000+step[5]*100+step[6]*10+step[7]; и передается в ...
- Ср янв 12, 2011 13:48:03
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
Разобрался с обратным отсчетом, получился вот такой код:
void mugaga(volatile unsigned int arr[])
{
unsigned int tick=9999;
unsigned int num=7;
tick--;
unsigned int tmp=tick;
while( num >4 ){
arr[num]=tmp%10;
tmp=tmp/10;
num--;
}
}
Появился следующий трабл (надеюсь последний ...
void mugaga(volatile unsigned int arr[])
{
unsigned int tick=9999;
unsigned int num=7;
tick--;
unsigned int tmp=tick;
while( num >4 ){
arr[num]=tmp%10;
tmp=tmp/10;
num--;
}
}
Появился следующий трабл (надеюсь последний ...
- Пн янв 10, 2011 17:34:17
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
Товарищи, помогайте:
не получается сделать обратный отсчет с помощью itoa();
PD5,PD6,PD7 кнопки управления индикаторами. (>>, up, down)
По нажатию PD4 должен организовываться обратный отсчет на нижнем индикаторе (9999, 9998, 9997 и т.д.)
В реальности показывает какую-то чушь((
Выкладываю проект в ...
не получается сделать обратный отсчет с помощью itoa();
PD5,PD6,PD7 кнопки управления индикаторами. (>>, up, down)
По нажатию PD4 должен организовываться обратный отсчет на нижнем индикаторе (9999, 9998, 9997 и т.д.)
В реальности показывает какую-то чушь((
Выкладываю проект в ...
- Вс янв 09, 2011 15:16:28
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
так? или может проще:
помогите пожалуйста с этим обратным отсчетом, весь проект встал((
Код: Выделить всё
for (int i=0; i<8; i++)
{
if(a[i]>0){a[i]=a[i]-'0';}
}помогите пожалуйста с этим обратным отсчетом, весь проект встал((
- Сб янв 08, 2011 20:47:24
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
int buffer[3];
int num=123;
itoa(num,buffer,10);
Я правильно понял? Запишет num=123 в массив buffer[1,2,3], в 10-ой системе?
Помогите с алгоритмом: имеется a={1,2,3,4,9,9,9,9} Нужно организовать обратный отсчет второй половины массива по действию, т.е.:
a={1,2,3,4,9,9,9,9}
PORTA|=_BV ...
int num=123;
itoa(num,buffer,10);
Я правильно понял? Запишет num=123 в массив buffer[1,2,3], в 10-ой системе?
Помогите с алгоритмом: имеется a={1,2,3,4,9,9,9,9} Нужно организовать обратный отсчет второй половины массива по действию, т.е.:
a={1,2,3,4,9,9,9,9}
PORTA|=_BV ...
- Сб янв 08, 2011 19:05:29
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
Столкнулся с такой банальной на первый взгляд проблемой, как разложить, например число 1567 в массив а={1,5,6,7}. За помощь буду очень признателен. Естественно на WinAVR
- Сб янв 08, 2011 13:19:34
- Форум: Микроконтроллеры и ПЛИС
- Тема: Проблема с динамической индикацией
- Ответы: 12
- Просмотры: 2577
Re: Проблема с динамической индикацией
Совсем обижаете, это естественно, просто когда присваиваешь порту переменную (линии порта установлены на выход), она кушает весь порт, и начихать, что перед этим я 4 линии инициализировал как выход, а 4 оставшиеся как вход, 4 как вход просто переходят в состояние z (неопределенное)
- Сб янв 08, 2011 09:58:53
- Форум: Микроконтроллеры и ПЛИС
- Тема: Проблема с динамической индикацией
- Ответы: 12
- Просмотры: 2577
Re: Проблема с динамической индикацией
И еще вопрос:
Вот так PORTC=step[j], зараза кушает весь порт, хотя реально нужно всего 4 линии порта (отображение числа в 2-ом коде), подскажите как записать это в 4 линии, чтобы остальные были свободны,пробывал писать не чистым присваиванием, а с помощью |=, не получилось((.
Так же не могли бы вы ...
Вот так PORTC=step[j], зараза кушает весь порт, хотя реально нужно всего 4 линии порта (отображение числа в 2-ом коде), подскажите как записать это в 4 линии, чтобы остальные были свободны,пробывал писать не чистым присваиванием, а с помощью |=, не получилось((.
Так же не могли бы вы ...
- Пт янв 07, 2011 15:10:23
- Форум: Микроконтроллеры и ПЛИС
- Тема: Проблема с динамической индикацией
- Ответы: 12
- Просмотры: 2577
Re: Проблема с динамической индикацией
как раз хотел написать про кнопки, уже ответили))
а что означает 0x12??
а что означает 0x12??
- Пт янв 07, 2011 10:17:12
- Форум: Микроконтроллеры и ПЛИС
- Тема: Проблема с динамической индикацией
- Ответы: 12
- Просмотры: 2577
Re: Проблема с динамической индикацией
Уху)))
- Чт янв 06, 2011 19:13:40
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
не нравится?
volatile действительно помог
можно пару ссылочек для изучения WinAVR и его особенностей, только начал))
Смотрим в эту тему))
viewtopic.php?f=20&t=40373
volatile действительно помог
можно пару ссылочек для изучения WinAVR и его особенностей, только начал))
Смотрим в эту тему))
viewtopic.php?f=20&t=40373
- Чт янв 06, 2011 18:09:15
- Форум: AVR
- Тема: WinAvr в вопросах и ответах
- Ответы: 2199
- Просмотры: 1275371
Re: WinAvr в вопросах и ответах
Как правильно работать с массивами в WinAVR?
#define F_CPU 3686400UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
unsigned char step[2];
unsigned int i;
void temp(){
i++;
step[i]++;}
ISR(TIMER0_OVF_vect){
if(!(PIND & (1<<PIND5 ...
#define F_CPU 3686400UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
unsigned char step[2];
unsigned int i;
void temp(){
i++;
step[i]++;}
ISR(TIMER0_OVF_vect){
if(!(PIND & (1<<PIND5 ...
- Чт янв 06, 2011 10:04:35
- Форум: Микроконтроллеры и ПЛИС
- Тема: Проблема с динамической индикацией
- Ответы: 12
- Просмотры: 2577
Re: Проблема с динамической индикацией
Выяснил, что за проблема
программа не хочет заполнять массив, только не понятно почему
- Ср янв 05, 2011 22:27:43
- Форум: Микроконтроллеры и ПЛИС
- Тема: Проблема с динамической индикацией
- Ответы: 12
- Просмотры: 2577
Re: Проблема с динамической индикацией
Наверное я не правильно озвучил тему: проблема не с индикацией, а с записью данных в масиив цифр и вывод их на индикатор.
Вообщем хелп ми)
Вообщем хелп ми)