Например TDA7294

Форум РадиоКот • Просмотр темы - Программирование ATtiny13
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Ср сен 30, 2020 13:27:28

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 124 ]     ... , , , 6,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Вт дек 17, 2019 22:28:50 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 13
Рейтинг сообщений: 57
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2105
Откуда: Беларусь
Рейтинг сообщения: 0
Код:


#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <util/delay.h>
unsigned int i,k;

ISR(TIM0_COMPA_vect)    {
   i=i+1;
     if (i==38)
   {
     TCNT0=0x00;
      i=0;
      k=k+1;
      PORTB^=(1<<PORTB0);  // моргаем каждую секунду (инвертируем каждую секунду)
          }
       }
void main(void)
 {
     DDRB=0xFF;
    PORTB=0b00000001;
    TCCR0B=(0<<WGM02) | (1<<CS02) | (0<<CS01) | (1<<CS00);  //Счетный режим таймера с часторой....
    TCCR0A=(1<<WGM01) ;   // режим сравнения СТС
    OCR0A=0x1e;    // Заданное число сравления (30)
    TIMSK0=(0<<OCIE0B) | (1<<OCIE0A) | (0<<TOIE0); //Разрешаем выполнение прерывание по совпадению в OCR0A
   
    sei();
 
   while (1)
   {
 
      }
 }


добился что бы счетчик считал 1 секунду.

NStorm писал(а):
Потому, чтобы он работал в таком режиме, надо ему такой режим установить в TCCR0A:
Код:
TCCR0A = (1 << WGM01);

Режим называется Clear Timer on Compare Match (CTC). Чтобы он считал до OCR0A, а НЕ до 0xFF.

NStorm, все правильно вы написали.

Но у меня почему-то не получалось пока не сформировал готовый код по совету roman.com и не посмотрел его внимательно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Вт дек 17, 2019 22:42:07 
Электрический кот

Карма: 3
Рейтинг сообщений: 261
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1031
Рейтинг сообщения: 0
Код:
TIMSK0=(0<<OCIE0B) | (1<<OCIE0A) | (0<<TOIE0); //Разрешаем выполнение прерывание по совпадению в OCR0A

Сдвигать нули ну никакого же смысла. Поэтому:
Код:
TCCR0B=0x05; //ДЕЛЕНИЕ НА 1024

И
Код:
 TCCR0B=(0<<WGM02) | (1<<CS02) | (0<<CS01) | (1<<CS00);

В общем-то ничего не отличаются, только 2ая запись визуально понятнее. Если еще б нули оттуда убрать, еще понятнее будет )
В прошлом варианте не хватало только TCCR0A = (1 << WGM01);. Должно было с ним заработать. Где-то в другом месте что-то не так написали.

Добавлено after 4 minutes 9 seconds:
Еще:
unsigned int i,k; - я же писал, надо volatile обязательно, если меняем в прерывании

TCNT0=0x00; - лишнее, он и так сбрасывается каждый в этом режиме до входа в прерывание.


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Вт дек 17, 2019 23:06:08 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 13
Рейтинг сообщений: 57
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2105
Откуда: Беларусь
Рейтинг сообщения: 0
А вот попробовал то же фокус проделать с OCR0B.

Так вот, ничего не вышло

OCR0B=0x1e; // Заданное число сравления (30)
TIMSK0=(1<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0);

Прочитал в интернетах что СТС не работает с OCR0B

Ну да ладно, буду двигаться дальше, - к ШИМУ.

Добавлено after 3 minutes 46 seconds:
Одновременно читаю уроки по Атмеге, так вот там как-то все более логично...


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Ср дек 18, 2019 07:41:34 
Электрический кот

Карма: 3
Рейтинг сообщений: 261
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1031
Рейтинг сообщения: 0
Не работает, да, там сказано что верхнее значение строго OCR0A.


Вернуться наверх
 
Драйверы MOSFET/IGBT Infineon – силой нужно управлять!

Специалисты Infineon усовершенствовали традиционные кремниевые MOSFET и IGBT и выпустили компоненты на базе принципиально иных материалов – нитрида галлия и карбида кремния. Мы создали подборку полезных материалов, чтобы вы разобрались во всех тонкостях и стали экспертом по управлению силовыми приборами нового поколения CoolMOS, CoolGaN, CoolSiC!

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Пн авг 03, 2020 11:08:18 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 13
Рейтинг сообщений: 57
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2105
Откуда: Беларусь
Рейтинг сообщения: 0
И снова здравствуйте!
Вот есть у меня такая задумка

Добавлено after 25 minutes 18 seconds:
есть синтезатор на аttiny13 и lm7001
Lm 7001 управляется с тиньки по 3 пинам
еще 3 пина свободных

Но программа для тинки написана на 1 фиксированную частоту.

Я бы хотел добавить кнопку или даже 2 кнопки, что бы "гонять" частоту туда-сюда. Для них нужно 2 пина
Ну и поняятно что бы видеть какую частоту я ставлю через сдвиговый регистр 74HC595 семисегнментный индикатор и для этого еще нужно 3 пина

И я подумал что ближайший многопиновый аналог аттини13 это attiny2313. В правильном ли направление я мыслю?

Добавлено after 2 minutes 51 second:
Изображение


Вернуться наверх
 
Снижена цена на DC/DC и AC/DC преобразователи Mornsun в Компэл!

Хорошие новости для покупателей источников питания! Компэл снизил цены на всю продукцию Mornsun. В ассортименте – как широко известные и популярные позиции, так и новинки. Доступны AC/DC, неизолированные DC/DC-преобразователи или импульсные стабилизаторы (семейство K78/R3), изолированные DC/DC, и новейшее поколение R4.

Подробнее>>
В сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Пн авг 03, 2020 11:10:04 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 1543
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 4914
Откуда: Сердце Пармы
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
не совсем... ядро тини, но у 2313 нет АЦП, зато есть 16-битный таймер с захватом, больше внешних прерываний, есть USI USART блоки...(это так, на вскидку различия)

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Пн авг 03, 2020 11:22:26 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 13
Рейтинг сообщений: 57
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2105
Откуда: Беларусь
Рейтинг сообщения: 0
Код:
/*****************************************************
Chip type               : ATtiny13A
AVR Core Clock frequency: 4,000000 MHz
Memory model            : Tiny
External RAM size       : 0
Data Stack size         : 8
*****************************************************/
typedef  unsigned char byte ;
typedef  unsigned int  real ;

#include <tiny13.h>
#include <bcd.h>
#include <delay.h>


#define CE   PORTB.2       
#define CL   PORTB.1       
#define DA   PORTB.0       

void lm7001SendByte(byte k)
{
  byte i ;

  for (i = 0; i < 8; i++) {
    if (k&0x1) DA = 1;
    else
    DA = 0;
    delay_us(3);
    CL = 1;
    delay_us(3);
    CL = 0;
    k = k >> 1;
    delay_us(3);
    DA = 0;
  }
}

 
  // Формируем команды
void send_lm7001(){
  real divisor;

  divisor = (27135 + 465) / 10;  //делим на шаг заданный программно для микросхемы
  //         частота + ПЧ
  // пример: (частота + пч) * (кварц / шаг делителя) / реальный кварц
  //          (27135 + 455) * (7200 / 10) / 7200 = 2759
  //          (27135 + 455) * (7200 / 9) / 8000 = 2759

  CL = 0;
  CE = 1;
  delay_us(3);

  lm7001SendByte(divisor & 0x00FF);
  lm7001SendByte((divisor & 0xFF00)>>8);
  lm7001SendByte(0b11010000); 
  // Настройка делителя синтезатора (1-Fmin,101 - 9кГц шаг)
  //                                (1-Fmin, 001 - 10кГц шаг)
  delay_us(3);
  CE = 0;
}

void main(void)
{
PORTB=0x00;
DDRB=0x07;
delay_ms (20);
send_lm7001();      //  отправляем частоту 
delay_ms (200);
   
while (1)
{
#asm("sleep");
}
}     


Добавлено after 1 minute 1 second:
Ivanoff-iv, в каком направлении мне тогда двигаться. Как выбрать контроллер для расширения функционала?

Добавлено after 1 minute 29 seconds:
что бы меньше переписывать код...


Вернуться наверх
 


В сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Пн авг 03, 2020 11:30:38 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 1543
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 4914
Откуда: Сердце Пармы
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
если у тебя АЦП не задействован - переезжай на 2313...

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Пн авг 03, 2020 16:11:31 
Это не хвост, это антенна

Карма: 5
Рейтинг сообщений: 179
Зарегистрирован: Пт мар 26, 2010 17:16:52
Сообщений: 1348
Откуда: Kazan
Рейтинг сообщения: 1
Или использовать драйвер дисплея типа TM1628.
Управляется по 3 проводам, выводит информацию на многоразрядный дисплей,сканирует клавиатуру.


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Пн авг 03, 2020 16:37:34 
Друг Кота
Аватар пользователя

Карма: 39
Рейтинг сообщений: 1543
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 4914
Откуда: Сердце Пармы
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
код глянул — про АЦП ни слова :)
я тоже сначала хотел пару сдвиговых регистров предложить (1 на выход и 1 на вход), но там 4 провода надо... (выход, вход, клок, выбор чипа) раз здесь хватит 3 - то тоже вариант...

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Пн авг 03, 2020 17:18:34 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 13
Рейтинг сообщений: 57
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2105
Откуда: Беларусь
Рейтинг сообщения: 0
Заработает ли вышеприведенный код без доработок на Attiny 2313 ?

Что бы мне не переделывать, а заняться сразу выводом на дисплей (может быть это будет номер канала, тогда нужно всего 2 семисегметных дисплея)
и кнопками.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Пн авг 03, 2020 17:28:18 
Опытный кот

Карма: 13
Рейтинг сообщений: 76
Зарегистрирован: Вт янв 05, 2016 10:14:25
Сообщений: 875
Откуда: Мелеуз
Рейтинг сообщения: 0
С аттини2313 можно вообще без регистров сдвига сделать,поищите тему "Маленькой радио" на CQHAM,там все это сделано
Ошибся,там регистры сдвига есть


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Пн авг 03, 2020 19:42:37 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 13
Рейтинг сообщений: 57
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2105
Откуда: Беларусь
Рейтинг сообщения: 0
Или использовать драйвер дисплея типа TM1628.

Это случайно не со старых спутниковых тюнеров типа Uston, Openboх. Хватит ли у меня ума его подключить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Пн авг 03, 2020 20:35:30 
Электрический кот

Карма: 3
Рейтинг сообщений: 261
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1031
Рейтинг сообщения: 0
Заработает ли вышеприведенный код без доработок на Attiny 2313 ?

Должен ,т.к. никакой специфичеческой периферии не используется.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Чт сен 03, 2020 14:35:24 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 13
Рейтинг сообщений: 57
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2105
Откуда: Беларусь
Рейтинг сообщения: 0
после довольно длительного перерыва решил снова поизучать Attiny13. Уже попробовал запускать шим и регулировать скважность через АЦП посредством переменного резистоора - получилось. Разбираю регистры и биты. Потихоньку складывается общая картинка как это все работает.
Счас перечитал предыдущие страницы.

Интересует опять вопрос радиоуправления. И вот хочу что бы специалисты снова покритиковали поток моего примитивного сознания.
На 4-5-6 страница этой темы много было уже исписано по поводу передачи импульсов и протоколов. Все это я заново перечитал и пересмотрел ссылки.
Мало того, у меня быль пульт от люстры. Я прошил атмегу328 загручиком Ардуинно, присобачилк к ней 1602 дисплей и с помощью RX радиомодуля и скетча принял сигнал. У меня получилось что-то наподобии код: 46465 и период 262мс. И я подумал, что , получается что бы управлять люстрой нужно всего лишь передать сигнал определенной частоты. (?????). Не факт что это умозаключение было правильным. Но натолкнуло меня на новую мысль.
Так что получается, что я отправляю имульсы определенной частоты , а на приемнике с помощню тиньки принимаю эти имульсы, считаю их, и если скажем, их оказывается 250 штук за 0.1 сек, то это и будет сигнал для исполнительногго механизма. Ну так же не бывает в природе, что бы гдето случайно появился похожий сигнал? Понятно, что здесь никакой защиты. Но тем не менее, правильно ли я мыслю?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Чт сен 03, 2020 15:31:14 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 89
Рейтинг сообщений: 1754
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15375
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
olegue писал(а):
Ну так же не бывает в природе, что бы гдето случайно появился похожий сигнал?
зато бывает, что из пачки в 250 один или двадцать один, или тридцать один, или семь... или сколько-нибудь импульсов не дойдут до приемника... и что тогда?
olegue писал(а):
Понятно, что здесь никакой защиты
вот именно

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
удивительно, но при взгляде на многих сверху ничего не меняется...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Чт сен 03, 2020 16:19:52 
Друг Кота
Аватар пользователя

Карма: 87
Рейтинг сообщений: 949
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 10933
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
Есть вот такая железяка
Изображение
...
Может работать и как приемопередатчик (радиоудлиннитель RS232)... И как самостоятельное ДУ...
Вложение:
JDY-40.pdf [751.24 KiB]
Скачиваний: 3

А за основу пакета взять протокол для DS18B20 (блок из 8 байт с контрольной CRC)...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Чт сен 03, 2020 16:39:46 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 13
Рейтинг сообщений: 57
Зарегистрирован: Сб май 21, 2016 11:04:52
Сообщений: 2105
Откуда: Беларусь
Рейтинг сообщения: 0
ARV писал(а):
зато бывает, что из пачки в 250 один или двадцать один

т.е я понял, что импульсов должно быть поменьше, а порядка среди них побольше.

Добавлено after 5 minutes 42 seconds:
поэтому и применяют различные протоколы.
Но получается, что у радиоуправления люстрой на TP2262/tp2272 нет никакого протокола?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Чт сен 03, 2020 16:49:10 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 89
Рейтинг сообщений: 1754
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15375
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
olegue писал(а):
у радиоуправления люстрой на TP2262/tp2272 нет никакого протокола?
понятия не имею.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
удивительно, но при взгляде на многих сверху ничего не меняется...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование ATtiny13
СообщениеДобавлено: Чт сен 03, 2020 20:18:20 
Друг Кота
Аватар пользователя

Карма: 87
Рейтинг сообщений: 949
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 10933
Откуда: ДОНЕЦК (ЮГО-ВОСТОК ua/DPR)
Рейтинг сообщения: 0
...
Но получается, что у радиоуправления люстрой на TP2262/tp2272 нет никакого протокола?

Очень даже есть:
Вложение:
PT2262_5.pdf [588.6 KiB]
Скачиваний: 5

Вложение:
PT2272.pdf [1.38 MiB]
Скачиваний: 9

Только его вычитывать надо - достаточно примитивен и аппаратно закрыт (не во всех редакциях даташитов указывается).
8)


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 124 ]     ... , , , 6,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: LEVV2006 и гости: 15


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y