реклама на сайте
подробности

 
 
> Генератор импульсов на Attiny 45, Прямоугольный сигнал. Как получить?
mamuka60
сообщение Oct 30 2012, 18:56
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 30-10-12
Пользователь №: 74 169



Форумчане, здравствуйте! Простите за нубский вопрос. Спасите меня. Сам я разработчик-схемотехник, но в программировании микроконтроллеров понимаю мало, а дело срочное.
Итак, у меня есть всё аппаратное и программное обеспечение: распаянный на колодке контроллер Attiny45 без кварца, программатор SM-4, софт asisp для чтения и записи флеш и еепром, (т.е. сам я прошить-считать-стереть и.т.д. умею). Есть установленная Atmel Studio 6.0. Есть всё. Знаний про написание кода нет.
Требуется: получить с 2х ножек контроллера меандр скважностью 2, частота 50 кГц. Меандры должны идти в противофазе. т.е. если на одной ноге 0 то на другой в это время должен быть 1. Вот и всё, вот и вся задача. Подал питание - и нарубается меандр. Я чувствую, что это просто, а Си и Ассемблер забыл)))) Или чем вы его там пишите...
Ещё конкретнее: как написать программу, компилировать, а лучше, простите за наглость, дайте текст или уже готовую прошивку, но с исходником, чтобы я мог менять частоту и длительность импульсов. Горю, ребята., спасите, на самостоятельное изучение этого вопроса нет времени, но я займусь.
Пишите прямо тут, а ещё лучше - прямо мне в мыло ofts@yandex.ru
Спасибо всем заранее.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
20AmpMax
сообщение Nov 23 2012, 10:12
Сообщение #2





Группа: Новичок
Сообщений: 8
Регистрация: 23-11-12
Пользователь №: 74 525



Здравствуйте.

У меня те-же "грабли" что и у автора, и мне очень полезна эта тема для освоения.

Предыстория:
На одном из англо-язычных форумах наткнулся на одну схему с описанием и "исходником" устройства на Attiny85 которое может
мне помочь так как нужно портативное устройство. Автор, так-же как и я не разбирается в программировании, а в нашем
городе на радио рынке Attiny нет но есть Atmega16A и Atmega8. Я пытался пере компилировать в CVAVR код но не получается

Код
/*****************************************************
Project      : Sweeper generator
Version      : 1.0
Date         : 28/02/2012
Author       :
Chip type    : ATtiny85
Clock freq.  : 8,000000 MHz (Internal)
*****************************************************/

#include <ATtiny85.h>
#include <inavr.h>

// Standard defines +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#define HIGH                    1
#define LOW                     0

#define TRUE                    1
#define FALSE                   0

#define ON                      0
#define OFF                     1

#define BIT0                    0x01
#define BIT1                    0x02
#define BIT2                    0x04
#define BIT3                    0x08
#define BIT4                    0x10
#define BIT5                    0x20
#define BIT6                    0x40
#define BIT7                    0x80

#define MIN_FREQ                10      // 3,2Khz
#define MAX_FREQ                1000    // 32Hz

// I/O Port pins ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++          

#define LED_ON        PORTB &= (~BIT3)
#define LED_OFF       PORTB |= BIT3

#define PWM_HIGH      PORTB |= BIT0
#define PWM_LOW       PORTB &= (~BIT0)

#define BUTTON_IN     PINB & BIT4

// Global variables +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

volatile unsigned long pwm_step;
volatile unsigned int pwm_counter, pwm_frequency;
volatile unsigned char direction;

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++
// ++ Interrupts
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++

void timer0_ovf_isr(void) __interrupt[TIMER0_OVF_vect] //error missing"{"
{
  if (pwm_counter)
  {
    pwm_counter++;
  
    if (pwm_counter > (pwm_frequency/2))
      PWM_HIGH;
    else
      PWM_LOW;
      
    if (pwm_counter >= pwm_frequency)
      pwm_counter=0;
  }
}

void timer1_ovf_isr(void) __interrupt[TIMER1_OVF_vect]
{
  if (!pwm_counter)
  {
    if (direction)
    {
      pwm_frequency++;
  
      if (pwm_frequency >= MAX_FREQ)
        direction=0;
    }
    else
    {
      pwm_frequency--;
  
      if (pwm_frequency <= MIN_FREQ)
        direction=1;
    }

    pwm_counter=1;
  }

  if (pwm_step)
    pwm_step--;
}

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++
// ++ Main
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++

void main(void)
{
  // Ports initialization
  PORTB=0x3F;
  DDRB=0x09;
  
  // Timer/Counter 0 initialization
  TCCR0A=0x00;
  TCCR0B=0x01;
  TCNT0=0x00;
  OCR0A=0x00;
  OCR0B=0x00;
  
  // Timer/Counter 1 initialization
  PLLCSR=0x00;
  TCCR1=0x01;
  GTCCR=0x00;
  TCNT1=0x00;
  OCR1A=0x00;
  OCR1B=0x00;
  OCR1C=0x00;
  
  // External Interrupts initialization
  GIMSK=0x00;
  MCUCR=0x00;
  
  // Timers/Counters Interrupts initialization
  TIMSK=0x06;
  
  // Universal Serial Interface initialization
  USICR=0x00;
  
  // Analog Comparator initialization
  ACSR=0x80;
  ADCSRB=0x00;

  // Main loop
  while (1)
  {
    __disable_interrupt();
    LED_OFF;

    while (BUTTON_IN);
    
    LED_ON;
    pwm_step=1832000;       // 1 Min. count
    pwm_counter=1;          // Start counter
    pwm_frequency=MIN_FREQ; // Min. start freq.
    direction=0;            // Count up

    __enable_interrupt();

    while (pwm_step);
  }
}


Ошибка missing"{"

Принцип работы такой:
при подаче питания на устройство лампа (PB3) не горит устройство в режиме ожидания
при нажатии кнопки (PB4) лампа загорается и с вывода (PB0) генерируется сигнал ~3.2 кГц на 1 минуту.
От автора "It's designed to sweep from 32Hz to 3,2Khz for 1 minute when you press the button."

Помогите пере компилировать для Atmega16A
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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   Большое спасибо всем и особенно kovigor, мы получи...   Nov 2 2012, 15:23
|- - _Артём_   Цитата(mamuka60 @ Nov 2 2012, 17:23) Но ...   Nov 2 2012, 15:28
|- - kovigor   Цитата(mamuka60 @ Nov 2 2012, 18:23) Боль...   Nov 2 2012, 16:18
|- - 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


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th June 2025 - 08:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016