Например TDA7294

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





Текущее время: Ср апр 24, 2024 22:58:24

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


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



Начать новую тему Ответить на тему  [ Сообщений: 39 ]    , 2
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 20:12:27 
Родился

Зарегистрирован: Ср дек 12, 2018 21:53:38
Сообщений: 14
Рейтинг сообщения: 0
При чем тут шим, архив свой выложите.


выложил


Вложения:
AVRGCC7.rar [45.2 KiB]
Скачиваний: 203
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 20:18:24 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Архив поврежден.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 20:29:11 
Родился

Зарегистрирован: Ср дек 12, 2018 21:53:38
Сообщений: 14
Рейтинг сообщения: 0
Архив поврежден.


у меня все открывается :shock:

https://file1.uafile.com/189670


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

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

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 20:43:11 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Ваш архи мне удалось открыть только онлайн архиватором.
atmega8.pdsprj не запускается, но это не важно, может у вас протеус новее.
AVRGCC7_pwm.hex имеет 0 размер, как в папке AVRGCC7 так и в папке Debug.
Итог архив поврежден.

zip выложите.


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 20:43:19 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14063
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Архив поврежден.

Запаковано в 7-zip (версии 18.05 или выше).
Частенько встречается при просмотре архивов необходимость следить за последними версиями архиваторов...
:(
там уже 19-я версия имеется...
(https://www.7-zip.org)
:cry:


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 20:55:57 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Ну знаете ли, если бы за всем следил.... онлайн архиватор наверное за всем следит.

Ладно х с ним, его elf работает.

Где я должен увидеть 10 секунд?

На кнопку раз нажал - появился шим, частота шим 33мкс ~30кГц
Нажал кнопку и держу, точка входа case 1: примерное время 1,3 секунды,
сообщение в терминал
Код:
LONG COUT: 0001
SHORT COUT: 000


Последний раз редактировалось Dimon456 Вт мар 09, 2021 20:58:21, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 20:57:57 
Родился

Зарегистрирован: Ср дек 12, 2018 21:53:38
Сообщений: 14
Рейтинг сообщения: 0
Ваш архи мне удалось открыть только онлайн архиватором.
atmega8.pdsprj не запускается, но это не важно, может у вас протеус новее.
AVRGCC7_pwm.hex имеет 0 размер, как в папке AVRGCC7 так и в папке Debug.
Итог архив поврежден.

zip выложите.


Вложения:
AVRGCC7_.7z [37.18 KiB]
Скачиваний: 189
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 21:01:49 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
beoro, 7z - это не zip.
А вообще фига там выкладывать, всё прекрасно открывается. Но народ с доисторическими winrar'ами видимо сидит до сих пор.

Спойлер
Код:
/*
 * AVRGCC7.c
 *
 * Created: 08.03.2021 22:03:58
 *  Author: shevc
 */

#define F_CPU       8000000UL

// PWM Mode
#define PHASE       0x11 // PWM, Phase Correct, 15kHz
#define FAST        0x19 // PWM, Fast 31kHz
#define PWM_MODE    FAST
#define PWM_PIN     PB2
#define PWM     OCR1B

//  нопка
#define SWITCH_PIN  PD2

// UART
#define BAUD 9600
#define MYUBRR F_CPU / 16 / BAUD - 1

// DELAY
#define OWN_DELAY
#ifdef OWN_DELAY
#include <util/delay_basic.h>
static void _delay_ms(uint16_t n)
{
    while(n-- > 0)
        _delay_loop_2(950);
}
#else
#include <util/delay.h>
#endif

#include <avr/io.h>
#include <avr/sleep.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <avr/power.h>

volatile uint8_t conterTimer = 0;
volatile uint8_t securityTimer = 0;
volatile uint8_t long_counter = 0;
volatile uint8_t short_counter = 0;
volatile uint8_t press_long = 0;
volatile uint8_t press_short = 0;

int button_pressed () {
    static uint8_t buffer = 0x00;
    buffer = (buffer << 1) | ((PIND & (1 << SWITCH_PIN)) == 0);
    return (buffer & 0b00000011);
}

void uart_init (void) {
    UBRRH = MYUBRR >> 8;
    UBRRL = MYUBRR;
   UCSRA = (1 << URSEL);
    UCSRB = (1 << RXEN) | (1 << TXEN);
   UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);
}
 
unsigned char uart_getc (void) {
   //ждем приема байта
   while((UCSRA & (1 << RXC)) == 0);
   //считываем принІтый байт
   return UDR;
}
 
void send_putc (char c) {
    //ждем окончаниІ передачи предыдущего байта
    while((UCSRA & ( 1 << UDRE)) == 0);
    UDR = c;
}
 
void send_str (char *str) {
    unsigned char c;
    while((c = *str++) != 0) {
      send_putc(c);
    }
}

void send_int (unsigned int c) { // Ётправка числа от 0000 до 9999
   unsigned char temp;
   c = c%10000;
   temp = c/100;
   send_putc(temp/10+'0');
   send_putc(temp%10+'0');
   temp = c%100;
   send_putc(temp/10+'0');
   send_putc(temp%10+'0');
}

void pwm_on () {
   // пределитель на 1
    TCCR1A = (1 << COM1B1) | (1 << WGM11);
   TCCR1B = (1 << CS10) | PWM_MODE;
    ICR1 = 256; // frequency = 8000000/256 = 31.129 kHz,
   TCNT1 = 0x00;
   //OCR1A = 0x00;
    PWM = 255;
}   

void pwm_off () {
    TCCR1A = 0x00;
}

void sleep_switch_press () {
   
    conterTimer = 0;
    long_counter = 0;
    short_counter = 0;   
   
    // защелка
     while (button_pressed ()) {
         _delay_ms(32);
     }
   
    // включаем внешнее прерывание
    MCUCR &= ~ (1 << ISC01 | 1 << ISC00);
    GICR = (1 << INT0);
    GIFR = (1 << 6);
   
    // включаем сп¤щий режим
    sleep_mode();
   
    // отключаем сп¤щий режим
     sleep_disable();   
   
    // пределитель на 1024, (1024*256)/8000000 = 0.032768 мкс
    // 1000ms/32,768 = 30тиков = за 1 сек
    TCCR0 = (1 << CS02) | (1 << CS00);
    TIMSK = (1 << TOIE0);  // timer0 enable
    TCNT0 = 256;
   
    pwm_on ();   
   
    // отключаем внешнее прерывание
    GICR &= ~(1 << INT0);
    GIFR &= ~(1 << 6);
}


ISR (INT0_vect) {}

ISR (TIMER0_OVF_vect) {

   if (button_pressed ()) {
      
      if (conterTimer < 255) conterTimer++;
      
      if (conterTimer == 40) {
         long_counter++;
         if (press_long == 0) {
              press_long = 1;
         }
                  
         conterTimer = 0;
      }                      
                           
   } else {
      if ((conterTimer > 0) && (conterTimer < 22)) {
         short_counter++;
          if (press_short == 0) {
                press_short = 1;
          }                                          
         conterTimer = 0;
         press_long = 0;       
       }
      
    }      
   
   if (short_counter == 5) short_counter = 0;
   if (long_counter == 3) long_counter = 0;
   
   TCNT0 = 256;
}

int main (void) {
   
   // UART
   uart_init();
   
   // пины - на выход
   DDRB = (1 << PWM_PIN) | (1 << PB5) | (1 << PB7);
   
   // пины - на вход
   DDRD = (0 << PD2);
   
   // включаем подт¤гивающий (Pull-UP)
   PORTD = (1 << SWITCH_PIN);   
   
   // тут спим перед вкл, также -
   // спим после подачи напруги на ћ 
   set_sleep_mode(SLEEP_MODE_PWR_DOWN);
   
    sei();
   
   // сп¤щий режим
   sleep_switch_press();

    while (1) {      
      
      switch (long_counter) {
         
         case 0:            
         break;
         
           case 1:
              
            // индикатор активности вкл
             PORTB = (1 << PB5);
            
   
                    send_putc(13);
                    send_str("LONG COUT: ");
                    send_int(long_counter);                
                    send_putc(13);   
                send_str("SHORT COUT: ");
                send_int(short_counter);
                send_putc(13);             
            
         break;               
         
           case 2:
         
            // индикатор активности выкл
            PORTB &= ~ (1 << PB5);
            
            pwm_off();                                                
            
            // сп¤щий режим
             sleep_switch_press();
            
            long_counter = 0;
            conterTimer = 0;
         break;
      }                     
   }                         
   return 0;
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 21:04:43 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
Второй архив работает.
Те же 1,3 секунды подтверждается как и на AVRGCC7_pwm.hex так и на AVRGCC7_not_pwm.hex. Частота CPU Меги 8МГц.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 21:05:33 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
Цитата:
TCNT0 = 256;

Вам тут уже намекали в другом месте на этот явный косяк. Ткну прямо - не помещается 256 в 8 битный регистр, потому что счет начинается с 0, а не с 1!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 21:10:14 
Родился

Зарегистрирован: Ср дек 12, 2018 21:53:38
Сообщений: 14
Рейтинг сообщения: 0
Второй архив работает.
Те же 1,3 секунды подтверждается как и на AVRGCC7_pwm.hex так и на AVRGCC7_not_pwm.hex. Частота CPU Меги 8МГц.


вы проверяете в железе или в протеусе?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 21:11:55 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
TCNT0 это счетчик, плевать на него.
Тем более
Код:
 warning: unsigned conversion from 'int' to 'uint8_t' {aka 'volatile unsigned char'} changes value from '256' to '0' [-Woverflow]
вы проверяете в железе или в протеусе?
в протеусе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 21:25:39 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1289
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4510
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Мдя.... пакаление праграмистаф растёт... Не могут даже понять, что проблема банально в симуляторе :facepalm:
beoro, Вы как программы пишите ? :facepalm:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Вт мар 09, 2021 21:39:59 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
ТС поди системными часами пользовался, а не часами протеуса.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Ср мар 10, 2021 09:55:10 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14063
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Сегодня подавляющее большинство КОТЯТ (и поматерее) на симуляторах отладку базируют...
И не только ядра, но и внешней периферии.
С одной стороны неплохо (ежли к тому еще и мозги включаются)...
С другой - тесты придумывать для проверки проблемных алгоритмов и ситуаций - это также учиться надо...
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Ср мар 10, 2021 16:43:18 
Родился

Зарегистрирован: Ср дек 12, 2018 21:53:38
Сообщений: 14
Рейтинг сообщения: 0
Сегодня подавляющее большинство КОТЯТ (и поматерее) на симуляторах отладку базируют...
И не только ядра, но и внешней периферии.
С одной стороны неплохо (ежли к тому еще и мозги включаются)...
С другой - тесты придумывать для проверки проблемных алгоритмов и ситуаций - это также учиться надо...
:roll:


Все это связано иза нашествия китайского фальшивого барахла на рынке и не хочется оригинальные камни купленные десять лет назад бить зубилом :wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Ср мар 10, 2021 19:58:51 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14063
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Обычная практика - используется один кристалл (или несколько но разных по семействам/раскладке лапок) для тренировок/отладки конструкций определенное время (под пару сотен перепрошивок), а затем ставим подопытного в какую-нить прикладную поделку на все оставшееся время, заменяя его новым подопытным. Зачем те МК в засолке держать?
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Ср мар 10, 2021 20:48:45 
Мудрый кот

Карма: 20
Рейтинг сообщений: 145
Зарегистрирован: Вс дек 25, 2016 08:34:54
Сообщений: 1849
Рейтинг сообщения: 0
beoro писал(а):
китайского фальшивого барахла
А что не так с этим барахлом? Своего барахла то нет.
Ну подумаешь выводы гнилые, и флеш на 1к записи всего.
Другое дело когда вы спорите о каких нибудь мощных импульсных транзисторах или ШИМ контроллере, к примеру, CQ0765.
А это обычное арифметическое устройство, что в нем может быть не так? Платки Ардуино на ура расходится.
А что вы ихние телефоны Redmi и подобные берете? Это барахло, и тем более фальшивое.
А телевизоры? То же фальшиво барахло.
А компьютеры? То же фальшивое барахло.
А медицинское оборудование? Пульсоксиметры? Что там говорить о обычном медицинском ртутном градуснике?
Обыкновенные очки? И эти берете.

Я могу дальше перечислять, страниц так на 5 растяну.

Что скажите? Или вы можете только по тестировать? Сравнительные таблицы сделать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Замедление работы вектора внутреннего прерывания Atmega8
СообщениеДобавлено: Ср мар 10, 2021 21:36:08 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
Dimon456, что-то у вас всё в кучу смешалось. Никто не говорил, что _всё китайское_ - фальшивое барахло. Redmi - отличные телефоны, как и многие другие. Оригинальные китайские GigaDevice, MediaTek и прочие - неплохие ИС за отличную цену. И т.д. Но на Али и иже с ним полно откровенных подделок и говна в т.ч. Просто совсем чуть-чуть примеров:
http://easyelectronics.ru/mikrosxemy-iz-kitaya.html
http://easyelectronics.ru/ostorozhno-govno.html
Ну а всяких транзисторов, с перекорпусировкой, где внутри корпуса стоил маленький фуфлыжный кристалл дешевого аналога - тоже полно можно найти примеров.


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

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


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

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


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

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


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