Страница 535 из 628

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

Добавлено: Пн сен 08, 2014 12:44:57
koteika
в общем геморроя больше чем профита выйдет) а есть в линейке авр мк со схожими характеристиками и работающие на 8МГц без танцев с бубном от внутреннего генератора или внешнего кварца? мне с головой хватит 1кб памяти и 6 I/O а использовать мега8/16 для таких задач считаю кощунство :beer:

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

Добавлено: Пн сен 08, 2014 12:46:01
КАШАК
Например Tiny45

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

Добавлено: Пн сен 08, 2014 12:49:09
Gudd-Head
А чем вас 9,6 не устраивает? Казалось бы, быстрее — не медленнее :dont_know:

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

Добавлено: Пн сен 08, 2014 12:54:48
koteika
сломался дверной звонок - купить новый не спортивно, ведь нужно применять знания на практике :)есть кусок кода с прошлого проекта для воспроизведения мелодии рассчитанный на 8МГц, пересчитывать все для 9,6 неохота
хм... тини 45 у нас стоит почти как мега16( вот где здравый смысл?

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

Добавлено: Пн сен 08, 2014 18:25:14
amd9800
на alliexpress mega 8 дешевле чем tiny 13

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

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

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

Цифровые порты отключены на ножках АЦП - DIDR0=0b00011000;

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

Добавлено: Пн сен 08, 2014 19:04:46
просто КОТ
Друзья. Начинаю писать чуть ли не первую прошивку. Что я делаю не так? По идее, МК должен мигать светодиодом на пятой ножке (работает) а по приходу фронта (любого) на ножку 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

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

Добавлено: Пн сен 08, 2014 19:21:01
oleg110592
может ISR(INT0_vect) вместо void INTERRUPT(INT0_vect)

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

Добавлено: Пн сен 08, 2014 19:23:33
просто КОТ
Так было изначально. Но чёт не работало.

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

Добавлено: Пн сен 08, 2014 19:39:11
oleg110592
на всякий флаг бы очистить - добавить после MCUCR = (0<<ISC01) | (1<<ISC00);
это GIFR=(1<<INTF0) | (0<<PCIF1) | (0<<PCIF0);
да и режим это Falling Edge - должно на 0 вроде срабатывать, не ошибся по любому уровню

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

Добавлено: Пн сен 08, 2014 20:14:26
pcb
Ну и задержки в прерываниях эт да :tea:

а) убрать из прерывания delay
b) в прерывании только ставить флаг нажатия/отпускания кнопы и/или обрабатывать это самое нажатие
г) всю кухню делать в main.
:idea:

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

Добавлено: Пн сен 08, 2014 20:15:25
просто КОТ
Мона с примером? Флаги я пока не пробовал.

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

Добавлено: Пн сен 08, 2014 20:34:31
просто КОТ
Хм... Странно. После запуска протеус регистрирует таки импульс, который должен появиться в прерывании.. только в 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;
}

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

Добавлено: Пн сен 08, 2014 21:25:21
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;
}

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

Добавлено: Пн сен 08, 2014 22:13:28
просто КОТ
Проверял -- не пашет. Думал.. Потом понял в чём-таки подвох... Вход INT0 это же PORTB.2. А я ему всё в А тыкался... :facepalm: :))) :))) :)))

Atmel ATXMEGA128A3-AU

Добавлено: Пн сен 08, 2014 23:58:32
Balzercvua
Ребята подскажите каким простым самопальным прогером можна прошить ИКСмЕгА???насколько я понимаю СТК200.300 далеко не покатит!!!

Re: Atmel ATXMEGA128A3-AU

Добавлено: Вт сен 09, 2014 09:54:25
НАПАЛМ

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

Добавлено: Вт сен 09, 2014 17:53:03
просто КОТ
Такой ещё вопрос.. А какой командой задаётся потолок счёта таймеру? т.е. чтоб не по переполнению, а по совпадению. Такого не могу чёт найти, хотя явно есть.Надо взвести его на 10мс.

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

Добавлено: Вт сен 09, 2014 18:21:02
КРАМ
При каждом таймере (кроме нулевого) есть регистр (OCR), который подключен вместе с таймером к цифровому компаратору.
Достаточно записать в этот регистр необходимую величину пересчета и Вы добьетесь искомого.

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

Добавлено: Вт сен 09, 2014 18:32:56
ARV
Не достаточно, но необходимо. Ещё необходимо сконфигурировать режим СТС или иной подходящий.

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

Добавлено: Вт сен 09, 2014 19:06:21
просто КОТ

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

   // При частоте генератора 14.7456 МГц и делителе 1024, 1000ms - 14400 тактов.
       OCR3AH=56; OCR3AL=63;
Из какого-то примера. Что есть 56 и 63? Разве не с ОДНИМ числом совпадение?

И да, какими командами запускать/прекращать действие таймера?