Страница 523 из 628
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт июл 24, 2014 19:06:29
КРАМ
Pink-Pank писал(а):Если сопротивление нагрузки мало, то она ближе к вертикали
Наверное, наоборот? )
А если подумать?

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт июл 24, 2014 19:38:50
Pink-Pank
Starmarik писал(а):Мой алгоритм действий - подавать импульсы на ногу SH_cp, и во время подачи импульсов передать на ногу DS регистра комбинацию 01100000. А потом подать лог.1 на защелку регистра ST_cp, чтоб зажечь индикатор. Собсно проблема в том, что я не знаю, как это организовать в CodeVision AVR.
Спойлер
Код: Выделить всё
unsigned char x = 0b01100000, i;
void main (void)
{
DDRB = 0xFF; // настраиваем все ноги на выход
for (i=1; i<=8; i++)
{
PORTB.0 = (x | 0x80) >>7; // старший разряд (самый левый)
delay_ms(1); // Задержка на всякий случай. Не знаю, с какой скоростью там может ваш регистр работать
PORTB.1 = 1; // эта нога - синхросигнал
delay_ms(2);
PORTB.1 = 0;
delay_ms(1);
x = x<<1; // сдвигаем для передачи следующего 0 или 1
}
PORTB.2 = 1; // единица на защелку
delay_ms(1);
PORTB.2 = 0;
}
KleRiK писал(а):Симуляция работает, а вот не погорит ли в реальности...
не погорит. Главное - не вешайте слишком много диодов. Максимальный ток через МК - 200 мА.
Порты - можно. RESET - через 10 кОм на питание. Вообще вывод может настраиваться или как Reset (тогда его надо подтягивать к питанию) или как порт - тогда работаете как с портом (если не ошибаюсь, единственное ограничение - выход этого порта - открытый коллектор)
КРАМ писал(а):А если подумать?

ооо.. Тут еще и думать надо...
Спойлер

Т.е. чем больше нагрузка (меньше сопротивление Rc) - тем больше напряжения падает на участке Сток-Исток (ток-то стабилен).
А когда нагрузка уменьшается (увеличивается сопротивление Rc) - то кривая уходит в вертикальную область.
Ведь так?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт июл 24, 2014 21:06:23
КРАМ
Pink-Pank писал(а):
ооо.. Тут еще и думать надо...
Думать нужно всегда...
Я тут прочел, что Вы окончили РРТИ...
Какой факультет, если не секрет?
Вы вообще в курсе, что такое нагрузочная ПРЯМАЯ?
Что такое семейство выходных ВАХ?
Как расположена эта прямая на этом семействе?

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт июл 24, 2014 21:20:37
Starmarik
PINK-PANK, спасибо за код. Но у меня с ним проблемка - попробовал в протеусе - светят все сегменты индикатора, независимо от значения переменной х. Я думаю, проблема в строчке PORTB.0 = (x|0x80)>>7; когда пишу так - PORTB.0 = x>>7, то все индикатор выдает цифру, как положено, но через секунду гаснет. В чем может быть проблема? Вот код на всякий случай, может я что упустил.
Спойлер
Код: Выделить всё
#include <tiny13a.h>
#include <delay.h>
unsigned char x = 0b00000110, i;
void vivod(){
for (i=1; i<=8; i++)
{
PORTB.0 = (x|0x80)>>7; // старший разряд (самый левый)
delay_ms(1); // Задержка на всякий случай. Не знаю, с какой скоростью там может ваш регистр работать
PORTB.1 = 1; // эта нога - синхросигнал
delay_ms(2);
PORTB.1 = 0;
delay_ms(1);
x = x<<1; // сдвигаем для передачи следующего 0 или 1
}
PORTB.2 = 1; // единица на защелку
delay_ms(1);
PORTB.2 = 0;
}
void main (void)
{
DDRB = 0xFF; // настраиваем все ноги на выход
while(1){
vivod();
}
}
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт июл 24, 2014 21:21:00
Pink-Pank
КРАМ писал(а):Какой факультет, если не секрет?
Радиотехнический. Специальность - радиоэлектронные системы.
Но вообще, я больше по программированию (типа отмазался

)
КРАМ писал(а):Вы вообще в курсе, что такое нагрузочная ПРЯМАЯ?
Что такое семейство выходных ВАХ?
Как расположена эта прямая на этом семействе?
Прямая - это прямая. ) Понятие такое. Используется для выбора рабочей точки.
Семейство - это несколько кривых, изображающих зависимости тока от напряжения при разных условиях (напряжение затвора в данном случае)
Расположена под наклоном.
Starmarik писал(а):PINK-PANK, спасибо за код. Но у меня с ним проблемка...
PORTB.0 = x>>7;
Мой косяк - запарился.
Попробуйте последнюю строчку закомментировать. (//)
Точно не знаю, какой там алгоритм работы Вашего регистра. На защелке нужно удерживать напряжение?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Чт июл 24, 2014 21:31:36
Starmarik
PINK-PANK, огромнейшее спасибо

Все заработало, дальше буду разбиратся сам. Оказалось гораздо проще, чем я себе представлял

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт июл 25, 2014 05:02:51
КРАМ
Pink-Pank писал(а):
Радиотехнический.
......
Прямая - это прямая. ) Понятие такое. Используется для выбора рабочей точки.
Семейство - это несколько кривых, изображающих зависимости тока от напряжения при разных условиях (напряжение затвора в данном случае)
Расположена под наклоном.
Коллега, стало быть...
Я тоже окончил РТФ. Специальность радиотехника.
.................
Вот эта самая нагрузочная прямая при уменьшении сопротивления нагрузки становится ВЕРТИКАЛЬНЕЙ. А это означает, что при том же напряжении затвор-исток транзистор выходит в активный режим (пологую часть ВАХ).
Фактически, процесс перезаряда затворной емкости ключа выглядит как движение нагрузочной прямой
ДРАЙВЕРА этого ключа от вертикального к горизонтальному положению.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт июл 25, 2014 07:02:39
Pink-Pank
НАШИ - они повсюду! )
Попов воскресе!
КРАМ писал(а):процесс перезаряда затворной емкости ключа выглядит как движение нагрузочной прямой от вертикального к горизонтальному положению.
Уфф! Ну, вроде, наконец, разобрался! )) Пойду применять на практике! Че бы такого сотворить?

Спасибо за терпение! ))
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт июл 25, 2014 07:31:32
Бар-Барсик
Не хочет собираться проект, всё подключил, пути настроил. Вот такая ошибка. Подскажите как её исправить.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт июл 25, 2014 07:46:41
Pink-Pank
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт июл 25, 2014 11:58:53
sphincs
добрый день. такая проблемка. МК мега32. при нажатии кнопки нужно по USART передать строку. одновременно с этим на timer/counter2 навешен часовой кварц (на TOSC) с предделителем 128. прерывание через 7,8 мс для отсчета времени. при симуляции в протеусе после нажатия кнопки происходит передача строки (мега8 принимает ее и выводит на LCD дисплей), а дальше мега32 перестает реагировать на нажатия других кнопок, на которые должна в общем-то реагировать. при проверке пошагово в avrstudio у меня нормально передаются 2 символа из 20-ти нужной строки, потом отрабатывает первый раз прерывание счетчика и после этого передатчик зависает на проверке условия
выставление флага завершения передачи вручную ничего не меняет. курсор стоит в этом месте, но счетчик продолжает периодически щелкать, отсчитывая время. что это может быть?
куски кода привожу ниже
Спойлер
//передача строки из 20 символов
for (m=0;m<21;m++)
{
unsigned char symbol = d[m];
USART_transmitter(symbol);
}
delay_ms(20);
Спойлер
//обработчик передачи
void USART_transmitter(unsigned char data)
{
while ( ! ( UCSRA & (1<<UDRE)))
;
UCSRB &= ~(1<<TXB8);
if ( data & 0x100)
UCSRB |= (1<<TXB8);
UDR = data;
}
Спойлер
//обработчик прерывания, сгенерированный CVAVR
// Timer2 overflow interrupt service routine
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
time1+=7.8125;
}
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт июл 25, 2014 12:34:09
Pink-Pank
За исключением того, что вы передаете 21 символ вместо 20 - вроде все норм. возможно, проблема с симуляцией студией. Кусок кода с кнопками можете выложить? Или лучше весь код.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт июл 25, 2014 13:06:46
*Trigger*
sphincs писал(а):Код: Выделить всё
//передача строки из 20 символов
for (m=0;m<21;m++)
{
unsigned char symbol = d[m];
USART_transmitter(symbol);
}
delay_ms(20);
С таким кодом и будет 21. Переменная m будет последовательно принимать значение от 0 до 20, а это 21 число.
Нужно так:
Код: Выделить всё
//передача строки из 20 символов
for (m=0;m<20;m++)
{
unsigned char symbol = d[m];
USART_transmitter(symbol);
}
delay_ms(20);
От 0 до 19 - как раз 20 чисел.
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт июл 25, 2014 13:08:48
sphincs
Pink-Pank писал(а):За исключением того, что вы передаете 21 символ вместо 20 - вроде все норм
именно при таком варианте у меня выводится то, что нужно, без всякого мусора.
нажатие кнопки старт
Спойлер
if ((PINC.3==1)&&(fs=true)) //нажатие кнопки СТАРТ
{
#asm("cli");
TCCR2=0x01;
#asm("sei");
PORTA.0=0;
PORTA.1=0;
PORTA.2=0;
PORTA.3=0;
PORTA.4=0;
PORTA.5=0;
PORTC.5=0;
PORTC.1=0;
PORTD.7=0;
PORTD.5=0;
PORTD.3=0;
PORTA.7=1;
PORTA.6=1;
mode=1;
i=0;
l=0;
time1=0;
for (m=0;m<21;m++)
{
unsigned char symbol = d[m];
USART_transmitter(symbol);
}
delay_ms(20);
}
после нее при нажатии, например, кнопки 1
Спойлер
if (mode==1)
if (PIND.2==1) Button1_press_ok();
//обработчик кнопки 1
void Button1_press_ok()
{
#asm("cli");
PORTD.3=1;
PORTA.0=1;
PORTA.6=0;
PORTA.5=1;
mode=2;
i=0;
l=1;
a=time1+(TCCR2*0.0305);
edit(a);
}
D.3 и A.0 уже не включаются. сконфигурированы порты правильно, проверял
исправил на 20 для приемника и передатчика, отображается все так же хорошо, но других улучшений нет
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт июл 25, 2014 15:28:22
Pink-Pank
а весь проект можете выложить архивом? или там что-то секретное?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Пт июл 25, 2014 15:49:36
sphincs
да нет, просто осваиваю AVR на примере игрушки для себя. подозреваю, что протеус может просто плохо дружить с прерываниями от таймеров, не имел с ними дел еще. в принципе, у меня вроде есть все, чтобы проверить поведение кода в железе, может на выходных дойдут руки.
https://www.dropbox.com/s/bfifikyvy94k7 ... 03.0.1.zip два проекта и схема в протеусе (там конечно нагромождение, но примерно разобраться можно)
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Сб июл 26, 2014 10:57:56
amd9800
Хочу прошить чип atmega 8 и выставить ее работу от внутреннего генератора частоты на 8МГц
Читаю фьюзы в программаторе AVR910 и у меня два вопроса
Нумерация битов с права на лево - как в программирование или наоборот?
учитывая старший байт могу подозревать что невыделенный бит это Бит Spien и тогда получается нумерация битов с лево на право.
для выбора фьюзов использую калькулятор
а вот как читает фьюзы Codevision Avr

Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Сб июл 26, 2014 13:08:54
amd9800
решение нашел - оказывается в калькуляторе биты пронумерованы с низу в верх и я не обратил внимание
Бит spien оказывается 5-м
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Сб июл 26, 2014 17:47:38
nikolaenkowiktor
добрый вечер, подскажите, при программировании мк attiny2313 как подключать программатор к мк?
Re: Мелкие вопросы по МК и ПЛИС.
Добавлено: Вс июл 27, 2014 00:50:23
amd9800
nikolaenkowiktor писал(а):добрый вечер, подскажите, при программировании мк attiny2313 как подключать программатор к мк?
разводишь на плате выводы для MISO MOSI RESET SCK GROUND VCC
к этим выводам подключаешь программатор.