|
Генератор импульсов на Attiny 45, Прямоугольный сигнал. Как получить? |
|
|
|
Oct 30 2012, 18:56
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-10-12
Пользователь №: 74 169

|
Форумчане, здравствуйте! Простите за нубский вопрос. Спасите меня. Сам я разработчик-схемотехник, но в программировании микроконтроллеров понимаю мало, а дело срочное. Итак, у меня есть всё аппаратное и программное обеспечение: распаянный на колодке контроллер Attiny45 без кварца, программатор SM-4, софт asisp для чтения и записи флеш и еепром, (т.е. сам я прошить-считать-стереть и.т.д. умею). Есть установленная Atmel Studio 6.0. Есть всё. Знаний про написание кода нет. Требуется: получить с 2х ножек контроллера меандр скважностью 2, частота 50 кГц. Меандры должны идти в противофазе. т.е. если на одной ноге 0 то на другой в это время должен быть 1. Вот и всё, вот и вся задача. Подал питание - и нарубается меандр. Я чувствую, что это просто, а Си и Ассемблер забыл)))) Или чем вы его там пишите... Ещё конкретнее: как написать программу, компилировать, а лучше, простите за наглость, дайте текст или уже готовую прошивку, но с исходником, чтобы я мог менять частоту и длительность импульсов. Горю, ребята., спасите, на самостоятельное изучение этого вопроса нет времени, но я займусь. Пишите прямо тут, а ещё лучше - прямо мне в мыло ofts@yandex.ru Спасибо всем заранее.
|
|
|
|
|
 |
Ответов
|
Nov 2 2012, 15:23
|
Группа: Новичок
Сообщений: 5
Регистрация: 30-10-12
Пользователь №: 74 169

|
Большое спасибо всем и особенно kovigor, мы получили то, что хотели. мы освоили фокусы с нопами и ещё, что особенно расширяет влияние на частоту, комбинации с fuse - битами (как-то так). Всё получили без применения внешнего резонатора (кварца). Правда, пришлось поэкспериментировать, но в целом, инструмент освоен, начало положено, рухнула глухая стена непонимания процессов. Но жажда эксперимента заставляет меня задать вопрос: какую операцию в код надо вставить, чтобы при появлении, например, на portb2 логической 1, программа глохла и колебания выключались? Или, например, при появлении 1 на portb2, программа перескакивала, например, на другую подпрограмму, в которой, например, мы могли бы задать другое колебание?
|
|
|
|
|
Nov 2 2012, 16:18
|
Гуру
     
Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295

|
Цитата(mamuka60 @ Nov 2 2012, 18:23)  Большое спасибо всем и особенно kovigor, мы получили то, что хотели. мы освоили фокусы с нопами и ещё, что особенно расширяет влияние на частоту, комбинации с fuse - битами (как-то так). Всё получили без применения внешнего резонатора (кварца). Правда, пришлось поэкспериментировать, но в целом, инструмент освоен, начало положено, рухнула глухая стена непонимания процессов. [b] Но жажда эксперимента заставляет меня задать вопрос: какую операцию в код надо вставить, чтобы при появлении, например, на portb2 логической 1, программа глохла и колебания выключались? 1. Без кварца частота будет плыть с температурой, и весьма сильно. Вас это не смущает ? 2. Например, так: Код PORTB.0 = 0; PORTB.1 = 0; while(PINB.2 == 0) //Условие остановки генерации { //Отрабатываем первые 2 мкС #asm("nop") //Задержка на первые 2 мкС. #asm("nop") //Насколько я помню, "nop" выполняется за один машинный цикл. ... #asm("nop") //Исходя из этого рассчитайте или подберите с помощью осциллографа нужное вам кол-во "nop"ов
//Теперь отрабатываем 8 мкС PORTB.0 = 1; #asm("nop") #asm("nop") #asm("nop") ... #asm("nop")
//Теперь отрабатываем 2 мкС PORTB.0 = 0; #asm("nop") #asm("nop") ... #asm("nop")
//Теперь отрабатываем 8 мкС PORTB.1 = 1; #asm("nop") #asm("nop") #asm("nop") ... #asm("nop")
//Теперь отрабатываем 2 мкС, для чего начинаем новый виток цикла PORTB.1 = 0;
//Один цикл колебаний завершен. Выполняем новый цикл, и так продолжаем, пока не выключат питание }
//PINB.2 = 1. Останавливаем генерацию PORTB.0 = 0; PORTB.1 = 0; Книжку Крупника по Си почитайте. И мануал к CodeVision просмотрите ...
|
|
|
|
Сообщений в этой теме
mamuka60 Генератор импульсов на Attiny 45 Oct 30 2012, 18:56 kovigor Цитата(mamuka60 @ Oct 30 2012, 21:56) Пиш... Oct 30 2012, 20:44 mamuka60 [quote name='kovigor' date='Oct 31 201... Oct 31 2012, 19:26  kovigor Цитата(mamuka60 @ Oct 31 2012, 22:26) Спа... Oct 31 2012, 21:46   mamuka60 Цитата(kovigor @ Nov 1 2012, 01:46) Подош... Nov 1 2012, 06:57    Valek Цитата(mamuka60 @ Nov 1 2012, 10:57) PORT... Nov 1 2012, 08:14    kovigor Цитата(mamuka60 @ Nov 1 2012, 10:57) Поск... Nov 1 2012, 08:33 ae_ Цитата(mamuka60 @ Oct 31 2012, 03:56) Под... Nov 1 2012, 13:02 kovigor Цитата(ae_ @ Nov 1 2012, 16:02) В tiny45 ... Nov 1 2012, 21:44 mamuka60 Спасибо всем, друзья! Завтра попробуем. Выложу... Nov 1 2012, 19:00 _Артём_ Цитата(mamuka60 @ Nov 2 2012, 17:23) Но ... Nov 2 2012, 15:28 20AmpMax Здравствуйте.
У меня те-же "грабли" что... Nov 23 2012, 10:12 kovigor Цитата(20AmpMax @ Nov 23 2012, 14:12) Пом... Nov 23 2012, 11:43 20AmpMax А вот все равно Спасибо !
А вот все равно С... Nov 23 2012, 13:08 kovigor Цитата(20AmpMax @ Nov 23 2012, 17:08) А в... Nov 23 2012, 13:12 20AmpMax Конечно любой главное чтоб генерировал Nov 23 2012, 13:14 kovigor Цитата(20AmpMax @ Nov 23 2012, 17:14) Кон... Nov 23 2012, 13:18 20AmpMax вот спасибо спасибо спасибо.
А с чем Attiny85 ... Nov 23 2012, 13:36 kovigor Цитата(20AmpMax @ Nov 23 2012, 17:36) вот... Nov 23 2012, 13:43 20AmpMax Если будет интересно то линк на описание проблемы
... Nov 23 2012, 13:49 kovigor Цитата(20AmpMax @ Nov 23 2012, 17:49) Есл... Nov 23 2012, 13:53 20AmpMax Работает !!!!!!!!... Nov 23 2012, 14:18 kovigor Цитата(20AmpMax @ Nov 23 2012, 18:18) Раб... Nov 23 2012, 16:10 20AmpMax Да но не совсем нужна ешё техническая доработка (о... Nov 23 2012, 16:32 kovigor Цитата(20AmpMax @ Nov 23 2012, 20:32) Man... Nov 23 2012, 16:51 20AmpMax Завелась. Работает.
Да я сам не вожу у меня и пра... Nov 23 2012, 17:10 kovigor Цитата(20AmpMax @ Nov 23 2012, 20:10) Зав... Nov 23 2012, 17:14
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|