24.05.2009, 23:44
|
#591
|
Частый гость
Регистрация: 05.05.2009
Сообщений: 29
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Короче замучали (напился пива - злой)!!!
Юра, вы написали следующее:
"За три секунды можно написать "вольтметр" в CodeVisionAvr. Если есть трудности, то помогу."
Потому я попросил Вас написать данную программу, и то только потому, что у меня не получается динамическая индикация на С, Ассемблер я не понимаю.
Всё, большего мне не надо, если не можете помочь так бы и сказали, я б сразу мучать вопросами Вас не стал!
Я сам только учусь и стараюсь читать книги, спрашиваю только то, чего не нахожу.
На данном этапе мне не требуется оптимизировать код, получать сверхскоростное решение задачи, главное ЧТОБ РАБОТАЛО и всё!!! а с оптимизацией буду разбиратся после того, как получу работающий код!
Если не станет хватать ресурсов меги8 применю мегу 32, хотя меги8 по моим прикидкам "за глаза"!!!
"Давайте жить дружно" (с)
|
|
|
|
25.05.2009, 00:18
|
#592
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,268 раз(а) в 1,563 сообщении(ях)
|
Сообщение от ivashka_1
|
Потому я попросил Вас написать данную программу, и то только потому, что у меня не получается динамическая индикация на С, Ассемблер я не понимаю.
|
Гы ... писать за вас я не собираюсь.
Но если есть терпение - до завтра.
Могу изложить принцип динамики - по которому действительно напишите за 3 секунды...
Принцип универсальный . И осилите эту динамику.
__________________
Осторожно , злой кот
|
|
|
|
25.05.2009, 07:42
|
#593
|
Частый гость
Регистрация: 05.05.2009
Сообщений: 29
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Был бы очень признателен за помощь!
Время терпит, так что подожду.
|
|
|
|
25.05.2009, 10:02
|
#594
|
Почётный гражданин KAZUS.RU
Регистрация: 19.02.2008
Сообщений: 1,799
Сказал спасибо: 124
Сказали Спасибо 602 раз(а) в 419 сообщении(ях)
|
ivashka_1.
У Вас есть, на мой взгляд ошибки. В прерывании timer0_ovf_isr строка Display(Number); непонятна.
Видимо Вы хотели передать значение Number в функцию
void Display_init(), но тогда так и надо писать
Display_init(Number);, а функцию
void Display_init() обьявить так void Display_init(int Num) и написать ее так:
void Display_init(int Num)
{
Num1=Num2=0;
while (Num ›= 100)
{
Num -= 100;
Num1++;
}
while (Num ›= 10)
{
Num -= 10;
Num2++;
}
Num3 = Num;
Disp5 = Dig[Num1];
Disp6 = Dig[Num2];
Disp7 = Dig[Num3];
}
Тогда будет работать.
|
|
|
|
25.05.2009, 11:03
|
#595
|
Временная регистрация
Регистрация: 12.06.2006
Адрес: Україна
Сообщений: 95
Сказал спасибо: 19
Сказали Спасибо 19 раз(а) в 9 сообщении(ях)
|
Всем привет!
Задача простая но для меня новая.
Заставить Аттини13 генерить сигнал для фотофиниша. Сигнал - ИК.
Решил сигнал на ШИМ генерить.
Что получается: получить сигнал ШИМ непонятной мне частоты на пине проца.
На сколько я понял частота шим зависит от частоты кварцового или внутреннего генератора, а также от предделителя таймера. Также я понял как управлять заполнением ШИМ. Вопрос в том, как ТОЧНО выставить частоту ШИМ?
Вот кусочек моего кода:
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 1000,000 kHz
// Mode: CTC top=OCR0A
// OC0A output: Toggle on compare match
// OC0B output: Clear on compare match
TCCR0A=0x62;
TCCR0B=0x02;
TCNT0=0x00;
OCR0A=0x88;
OCR0B=0x44;
Спасибо!
|
|
|
|
25.05.2009, 11:07
|
#596
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
По вольтметру для меги
Прикрепленный файл: 69949.rar
|
|
|
|
25.05.2009, 11:27
|
#597
|
Почётный гражданин KAZUS.RU
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
|
Сообщение от AVL
|
Всем привет!
Задача простая но для меня новая.
Заставить Аттини13 генерить сигнал для фотофиниша. Сигнал - ИК.
Решил сигнал на ШИМ генерить.
Что получается: получить сигнал ШИМ непонятной мне частоты на пине проца.
На сколько я понял частота шим зависит от частоты кварцового или внутреннего генератора, а также от предделителя таймера. Также я понял как управлять заполнением ШИМ. Вопрос в том, как ТОЧНО выставить частоту ШИМ?
Вот кусочек моего кода:
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 1000,000 kHz
// Mode: CTC top=OCR0A
// OC0A output: Toggle on compare match
// OC0B output: Clear on compare match
TCCR0A=0x62;
TCCR0B=0x02;
TCNT0=0x00;
OCR0A=0x88;
OCR0B=0x44;
Спасибо!
|
Володя, нужно выставить частоту кварца (подобрать) в зависимости от тех ик приемников, что у тебя есть. Если приемники на 36 килогерц , т.е. период в режиме - быстрый шим - частота кварца будет в 256 раз больше - где -то 9.216 мегагерц . Если приемники на 38 килогерц, то кварц 9.728 мегагерц.
По длительности - там около 4 микросекунд - подберешь значение.
|
|
|
|
25.05.2009, 14:14
|
#598
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от AVL
|
Всем привет!
Задача простая но для меня новая.
Заставить Аттини13 генерить сигнал для фотофиниша. Сигнал - ИК. Решил сигнал на ШИМ генерить
|
Если генерить только сигнал для ИК передатчика..
ИМХО проще написать задержки програмными циклами..
без прерываний и ШИМ модулей...
Таким макаром делал ИК датчик на отражение + некоторая логика управления внешним устройством...
ПЕРЕДАЧА - ПРИЁМ одновременно,и АНАЛИЗ...
Если только формировать 33-38кГц то можно обойтись и PIC10F2xx... 6 ножек корпус SOT-23.
|
|
|
|
25.05.2009, 16:51
|
#599
|
Частый гость
Регистрация: 05.05.2009
Сообщений: 29
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
andries5
Большое спасибо! Этого "int" в строке
Display_init(Number);
и не хватало!!!
Только начало фунции Display должно выглядеть так:
void Display_init(int Number)
Всё, с динамической индикацией разобрался, теперь можно начинать ваять двухканальный вольтметр!!!
urry
Спасибо, есть интересный момент с усреднением нескольких значений, а я думал проще будет RC цепь на входе поставить.
|
|
|
|
25.05.2009, 17:59
|
#600
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,268 раз(а) в 1,563 сообщении(ях)
|
Сообщение от ivashka_1
|
andries5
Большое спасибо! Этого "int" в строке
Display_init(Number);
и не хватало!!!
Только начало фунции Display должно выглядеть так:
void Display_init(int Number)
Всё, с динамической индикацией разобрался, теперь можно начинать ваять двухканальный вольтметр!!!
|
Ну вот , опередели...
Хоть на работу не ходи.
__________________
Осторожно , злой кот
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:17.
|
|