 |
|
|
|
| Автор |
Сообщение |
urry Живет здесь... (>100)


Зарегистрирован: 23.10.2006 Сообщения: 243
|
Добавлено: 05 Июн 2007, 15:03 Заголовок сообщения: |
|
|
Это такой компилятор - я не поверил, полез в самплы - точно...
В общем случае - точка с запятой -это последовательное выполнение команд/операций, а завершающие фигурные скобки - выход из подпрограммы с использованием стека. Первый раз с таким сталкиваюсь, когда в конце выхода нужно было предупреждать, что продолжение следует...
Прикольно, такого нигде больше не встречал. Не зря вас, авр -щиков, лабцентр не любит...
Первый раз на горные лыжи встал... На обычных катался, конечно..
_________________ меня не интересует мнение людей. которые разбираются в этом вопросе. Только тех, кто сами что-то сделали (А. Энштейн) |
|
| Вернуться к началу |
|
 |
AVL Знатный посетитель (>20)


Зарегистрирован: 20.09.2006 Сообщения: 52 Откуда: Коломыя UA
|
Добавлено: 06 Июн 2007, 8:44 Заголовок сообщения: |
|
|
Да, работает! Сенкс!
Правда, я чуток подправил, ибо не работало
| Код: | #include <tiny13.h>
unsigned char ti;
unsigned char timer=5;
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TCNT0=ti;
PORTB.1=~PORTB.1;
ti=ti+1;
if (ti==255)
{
timer--; if (timer==1) {timer=5;};
};
TCCR0B=timer;
} |
Эт хорошо, что первый раз, ибо и для меня найдётся работка. Так-что, если ты не против, поднатаскай меня по "Си", а я тебя по горным.
|
|
| Вернуться к началу |
|
 |
AVL Знатный посетитель (>20)


Зарегистрирован: 20.09.2006 Сообщения: 52 Откуда: Коломыя UA
|
Добавлено: 06 Июн 2007, 13:28 Заголовок сообщения: |
|
|
Вернёмся теперь к "нашим овцам" ?
Как сделать плавным набор частоты.
Я предлагаю тупой вариант.
При достижении частоты скажем 500Гц, делать инкремент 10 и декримент 9. Наростание, на мой взгляд будет более плавным, хотя и не правильным
Как ЭТО реализовать в коде?
Я пробовал, но при достижении 500Гц у меня получалось декримент 9, опять 500 и так по кругу
|
|
| Вернуться к началу |
|
 |
urry Живет здесь... (>100)


Зарегистрирован: 23.10.2006 Сообщения: 243
|
Добавлено: 07 Июн 2007, 8:16 Заголовок сообщения: |
|
|
Да, интересно...как-то оно витиевато со стороны звучит...
Выложи, плиз, весь проект, я сейчас не могу заниматься - проблемы на работе. В субботу посмотрю. Перебор вариантов.. -не то немножко.Идея нужна !
Тех задание сформулируй по возможности полнее.
_________________ меня не интересует мнение людей. которые разбираются в этом вопросе. Только тех, кто сами что-то сделали (А. Энштейн) |
|
| Вернуться к началу |
|
 |
AVL Знатный посетитель (>20)


Зарегистрирован: 20.09.2006 Сообщения: 52 Откуда: Коломыя UA
|
Добавлено: 09 Июн 2007, 18:19 Заголовок сообщения: |
|
|
Значит так.
Мне нужно генерить меандр с соотношением "1" на ноге порта. Начальная частота порядка 2-5 Гц, конечная порядка 3кГц.
Это должен быть ГКЧ. Частота плавно наростает и плавно падает. Но именно ПЛАВНО, а не медленно разгоняется вначале и ОЧЕНЬ быстро после ,порядка, 50Гц. Перекрытие по диапазону мы уже сделали, а вот задача плавности осталась. Но что радует, значение частоты в конкретной точке не критично к стабильности. Можно так генерить, к примеру: 200 210 201 209 211 203 204 205 2112 202 202 205 213 206 202 203 204 205 202 104.
То-есть наращивать частоту, но с топтанием на месте можно.
Вот я и предлагаю сделать типа так.
Инкремент 10
Декримент9
Инкремент10
Декримент9
Два шага вперёд, один назад.
9, 10, это к примеру.
как это реализовать, а точнее прилепить к педыдущей задаче?
|
|
| Вернуться к началу |
|
 |
AVL Знатный посетитель (>20)


Зарегистрирован: 20.09.2006 Сообщения: 52 Откуда: Коломыя UA
|
Добавлено: 12 Июн 2007, 15:17 Заголовок сообщения: |
|
|
| Нет шансов вырулить из этой задачи?
|
|
| Вернуться к началу |
|
 |
urry Живет здесь... (>100)


Зарегистрирован: 23.10.2006 Сообщения: 243
|
Добавлено: 12 Июн 2007, 21:52 Заголовок сообщения: |
|
|
Ну что же так грустно.. Вот, навскидку..
| Описание: |
|
 Файлообменник |
| Название файла: |
gpn.rar |
| Размер файла: |
150.43 KB |
| Скачено: |
152 раз(а) |
_________________ меня не интересует мнение людей. которые разбираются в этом вопросе. Только тех, кто сами что-то сделали (А. Энштейн) |
|
| Вернуться к началу |
|
 |
AVL Знатный посетитель (>20)


Зарегистрирован: 20.09.2006 Сообщения: 52 Откуда: Коломыя UA
|
Добавлено: 13 Июн 2007, 9:22 Заголовок сообщения: |
|
|
Спасибо, вникаю. Хорошо, что пример БЕЗ коментариев, есть стимул для самообразования
|
|
| Вернуться к началу |
|
 |
AVL Знатный посетитель (>20)


Зарегистрирован: 20.09.2006 Сообщения: 52 Откуда: Коломыя UA
|
Добавлено: 13 Июн 2007, 11:46 Заголовок сообщения: |
|
|
Нет, "на вскидку" не получилось
Поставь fr = 250 и у видиш, что будет. А будет следующее. На малых частотах осцилограмма ползём медленно, на больших делает "вжик". То-есть нет плавности перекрытия диапазона. Увы.
Что делать?
|
|
| Вернуться к началу |
|
 |
urry Живет здесь... (>100)


Зарегистрирован: 23.10.2006 Сообщения: 243
|
Добавлено: 13 Июн 2007, 12:17 Заголовок сообщения: |
|
|
Это понятно, что частоту 20 Герц за 1 секунду можно выдать 20 раз, а 3500, соответственно ... Поэтому ввел переменную - dlina, которой определяется количество полупериодов. Поставь свое условие со своим законом - если fr больше какого-то значения, то длина такая - то. Закономерность на таком участке - 255 градаций - если включить линейную, то выдача будет идти очень долго - ведь минимальное значение для 20 Герц - 50 миллисекунд - умножаем на 255 градаций и получается -12 с половиной секунд вместо требуемых 3-5 . Попробуй экспоненту - зависимость между числом fr и dlina.
Уменьши количество градаций - прыгай через 5- 10.
_________________ меня не интересует мнение людей. которые разбираются в этом вопросе. Только тех, кто сами что-то сделали (А. Энштейн) |
|
| Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять вложения в этом форуме Вы можете просматривать вложения в этом форуме
|
|