Мелкие вопросы по МК и ПЛИС.

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
koteika
Встал на лапы
Сообщения: 147
Зарегистрирован: Пт ноя 27, 2009 18:24:25
Откуда: Харьков
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение koteika »

в общем геморроя больше чем профита выйдет) а есть в линейке авр мк со схожими характеристиками и работающие на 8МГц без танцев с бубном от внутреннего генератора или внешнего кварца? мне с головой хватит 1кб памяти и 6 I/O а использовать мега8/16 для таких задач считаю кощунство :beer:
Аватара пользователя
КАШАК
Это не хвост, это антенна
Сообщения: 1303
Зарегистрирован: Вс апр 19, 2009 17:20:22
Откуда: г.Ростов-на-Дону/г.Таганрог/г.Геленджик
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КАШАК »

Например Tiny45
Опыт растет прямо пропорционально выведенному из строя оборудованию...
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20091
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение Gudd-Head »

А чем вас 9,6 не устраивает? Казалось бы, быстрее — не медленнее :dont_know:
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
koteika
Встал на лапы
Сообщения: 147
Зарегистрирован: Пт ноя 27, 2009 18:24:25
Откуда: Харьков
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение koteika »

сломался дверной звонок - купить новый не спортивно, ведь нужно применять знания на практике :)есть кусок кода с прошлого проекта для воспроизведения мелодии рассчитанный на 8МГц, пересчитывать все для 9,6 неохота
хм... тини 45 у нас стоит почти как мега16( вот где здравый смысл?
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение amd9800 »

на alliexpress mega 8 дешевле чем tiny 13

подал на tiny 13A на АЦП сигнал (напряжение батареи) через делитель 30К верхний 10 нижний.
Показывало напряжение нормальное.

Потом на второй ацп подал сигнал через делитель 3К и 1К.
И на первый АЦП пошли глюки через пару минут работы показывало слишком маленькое напряжение через делитель - как будто АЦП пожирает энергию.
Поставил и там делитель 3К и 1К и вроде пока нормально.

Как это объяснить?

Цифровые порты отключены на ножках АЦП - DIDR0=0b00011000;
Аватара пользователя
просто КОТ
Друг Кота
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение просто КОТ »

Друзья. Начинаю писать чуть ли не первую прошивку. Что я делаю не так? По идее, МК должен мигать светодиодом на пятой ножке (работает) а по приходу фронта (любого) на ножку 2, это событие INT0, должен сформировать импульс 5мс и продолжить мигать. Вот импульса то и нет. Судя по всему рукожопо обработано прерывание. но полчаса гугла не дали понимания -- что не так.

Код: Выделить всё

#define F_CPU 8000000

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/delay.h>

void INTERRUPT(INT0_vect) {

        _delay_ms(5);
PORTA = 0x01;
        _delay_ms(5);
PORTA = 0x00;

}
 
int main (void){
    sei();
    GIMSK |= (1<<INT0);
    MCUCR = (0<<ISC01) | (1<<ISC00); //íàñòðîèëèñü
    DDRA = 0xfb;  // ïîðò Ñ - âûõîä
    while (1){
        _delay_ms(1000);
PORTA = 0x10;
        _delay_ms(1000);
PORTA = 0x00;
    }
 
    return 0;
}


МК = ATtiny24
Изображение
И ты врёшь!!! © Vladisman
Изображение
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение oleg110592 »

может ISR(INT0_vect) вместо void INTERRUPT(INT0_vect)
Аватара пользователя
просто КОТ
Друг Кота
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение просто КОТ »

Так было изначально. Но чёт не работало.
Изображение
И ты врёшь!!! © Vladisman
Изображение
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение oleg110592 »

на всякий флаг бы очистить - добавить после MCUCR = (0<<ISC01) | (1<<ISC00);
это GIFR=(1<<INTF0) | (0<<PCIF1) | (0<<PCIF0);
да и режим это Falling Edge - должно на 0 вроде срабатывать, не ошибся по любому уровню
pcb
Опытный кот
Сообщения: 833
Зарегистрирован: Пт авг 12, 2011 09:14:27
Откуда: Млечный путь/Земля/РФ/Екатеринбург

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение pcb »

Ну и задержки в прерываниях эт да :tea:

а) убрать из прерывания delay
b) в прерывании только ставить флаг нажатия/отпускания кнопы и/или обрабатывать это самое нажатие
г) всю кухню делать в main.
:idea:
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ
Аватара пользователя
просто КОТ
Друг Кота
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение просто КОТ »

Мона с примером? Флаги я пока не пробовал.
Изображение
И ты врёшь!!! © Vladisman
Изображение
Аватара пользователя
просто КОТ
Друг Кота
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение просто КОТ »

Хм... Странно. После запуска протеус регистрирует таки импульс, который должен появиться в прерывании.. только в 40мс длинной и 1 раз. Как это понимать?

Код: Выделить всё

#define F_CPU 8000000

#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/delay.h>

ISR(INT0_vect)  {

        _delay_ms(5);
PORTA = 0x02;
        _delay_ms(5);
PORTA = 0x00;

}
 
int main (void){
    sei();
    GIMSK |= (1<<INT0);
    MCUCR = (0<<ISC01) | (1<<ISC00); //настроились
   GIFR=(1<<INTF0) | (0<<PCIF1) | (0<<PCIF0);
    DDRA = 0xfb;  // порт С - выход
    while (1){
        _delay_ms(1000);
PORTA = 0x10;
        _delay_ms(1000);
PORTA = 0x00;
    }
 
    return 0;
}
Изображение
И ты врёшь!!! © Vladisman
Изображение
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение oleg110592 »

Так работает

Код: Выделить всё

#define F_CPU 8000000UL

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>

ISR(INT0_vect)  {
    _delay_ms(5);
    PORTA |= 0x02;
    _delay_ms(5);
    PORTA &= ~0x02;
}

int main (void){
    // Crystal Oscillator division factor: 1
    CLKPR=(1<<CLKPCE);
    CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);

    // Analog Comparator: Off
    ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
    ADCSRB=(0<<ACME);
    
    GIMSK |= (1<<INT0);
    MCUCR = (0<<ISC01) | (1<<ISC00); //íàñòðîèëèñü
    GIFR=(1<<INTF0) | (0<<PCIF1) | (0<<PCIF0);

    DDRA = 0xFF;  // ïîðò A - âûõîä
    sei();
    while (1){
        _delay_ms(1000);
        PORTA |= 0x10;
        _delay_ms(1000);
        PORTA &= ~0x10;
    }
    return 0;
}
Аватара пользователя
просто КОТ
Друг Кота
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение просто КОТ »

Проверял -- не пашет. Думал.. Потом понял в чём-таки подвох... Вход INT0 это же PORTB.2. А я ему всё в А тыкался... :facepalm: :))) :))) :)))
Изображение
И ты врёшь!!! © Vladisman
Изображение
Аватара пользователя
Balzercvua
Потрогал лапой паяльник
Сообщения: 311
Зарегистрирован: Вт дек 31, 2013 17:36:43

Atmel ATXMEGA128A3-AU

Сообщение Balzercvua »

Ребята подскажите каким простым самопальным прогером можна прошить ИКСмЕгА???насколько я понимаю СТК200.300 далеко не покатит!!!
Аватара пользователя
НАПАЛМ
Это не хвост, это антенна
Сообщения: 1314
Зарегистрирован: Пт ноя 27, 2009 19:47:13
Откуда: Казань

Re: Atmel ATXMEGA128A3-AU

Сообщение НАПАЛМ »

Аватара пользователя
просто КОТ
Друг Кота
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение просто КОТ »

Такой ещё вопрос.. А какой командой задаётся потолок счёта таймеру? т.е. чтоб не по переполнению, а по совпадению. Такого не могу чёт найти, хотя явно есть.Надо взвести его на 10мс.
Изображение
И ты врёшь!!! © Vladisman
Изображение
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25122
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение КРАМ »

При каждом таймере (кроме нулевого) есть регистр (OCR), который подключен вместе с таймером к цифровому компаратору.
Достаточно записать в этот регистр необходимую величину пересчета и Вы добьетесь искомого.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение ARV »

Не достаточно, но необходимо. Ещё необходимо сконфигурировать режим СТС или иной подходящий.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
просто КОТ
Друг Кота
Сообщения: 12364
Зарегистрирован: Пт дек 17, 2010 15:07:50
Откуда: Крымский Федеральный Округ
Контактная информация:

Re: Мелкие вопросы по МК и ПЛИС.

Сообщение просто КОТ »

Код: Выделить всё

   // При частоте генератора 14.7456 МГц и делителе 1024, 1000ms - 14400 тактов.
       OCR3AH=56; OCR3AL=63;

Из какого-то примера. Что есть 56 и 63? Разве не с ОДНИМ числом совпадение?

И да, какими командами запускать/прекращать действие таймера?
Изображение
И ты врёшь!!! © Vladisman
Изображение
Ответить

Вернуться в «Разные вопросы по МК»