Форум программистов, компьютерный форум, киберфорум
Электроника для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.78/229: Рейтинг темы: голосов - 229, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96

Помощь В Освоении Мк

26.03.2013, 13:57. Показов 42867. Ответов 110
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дорого времени суток дороге форумчане, прошу вашей помощи в освоении МК
читал всякие книги по ним, понимаю как они работают в теории, хорошо знаком с программированием на С++, пиш не один год, и с электроникой знаком хорошо а вот как дело доходит до практики появляются какие-то проблемы и необъяснимые ситуации, прошу помочь разобраться во всяких таких непонятках и надеюсь что не только одному мне пригодятся ваши ответы, заранее спасибо:)
стараюсь освоить аврки, из ПО юзаю протеус и CodeVisionAVR
на данном этапе изучения МК столкнулся вот с какой проблемой
взял контроллер аттини2313, на выходы одного порта повесил светодиоды, подклюил терминал по усарт, на внутренний аналоговый компаратор подклюил два делителя
хотел заставить чтобы при приходе одного символа один светодиод зажигался, при приходе другого гас. и когда срабатывает компаратор горел бы другой светодиод. но в итоге получил что на компаратор он никак не реагирует, на симолы МК на выходе выдает при 1 2.3 вольта, светодиод не загорается.
никак немогу понять в чем беда%)


[31.92 Кб]
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2013, 13:57
Ответы с готовыми решениями:

Нужна помощь в освоении VHDL !
Товарищи ! Помогите найти проблему в коде VHDL. Хотел поэкспериментировать с кодом VHDL, но наткнулся на чертовщину с которой бьюсь уже...

Помощь в освоении С++
Здраствуйте!!! Может есть у кого-нибудь графический редактор на C++, где используются основы ООП. Или любой другой пример на ООП, где...

нужна помощь в освоении 1с8
Не сочтите за наглость. Нужно освоить 1с8 за пару месяцев(максимум 4) А я в неё тупо не въезжаю. С самим языком программирования...

110
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
31.03.2013, 13:44
Студворк — интернет-сервис помощи студентам
спасиба:) буду изучать:)
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
01.04.2013, 03:07
правильно ли я указал фьюзы для Attiny2313 для работы от внешнего кварца на 8Мгц ?
программатор UniProf

0
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 139
01.04.2013, 10:15
Нет. http://fusecalc.myrmk.net/ для унипроф инверсно
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
01.04.2013, 10:30
а вот допусим для Atmega16 там есть кварцевый резонатор высокой/редней/низкой частоты, 4 Мгц и 8Мгц как каким относятся?
0
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
01.04.2013, 10:33
высокий
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
01.04.2013, 14:19
на данный момент у меня есть 2 устройства, панель оператора и модуль исполнителного устройства, вот к одной пнаели оператора подключается два исполнительных утройства, обмен данными идет через уарт, панель оператора на атмеге16 с кварцем на 4Мгц а исполнительное устройство на аттини2313 с кварцем 8Мгц, в аттиньке реализован аппаратный уарт а в атмеге программный для каждого исполнительного свой вывод уарта сделан( устройство уже готовое).
в аттиньке вот так инициализирую уарт

#defyme bauddivider 51
void Init_Uart(void)
{
UBRRH = (unsykned char) (bauddivider>>8);
UBRRL = (unsykned char) bauddivider;
UCSRB = (1<<RXEN)|(1<<TXEN);
UCSRC = (1<<USBS)|(3<<UCSZ0);
}
unsykned char Reciver(void)
{
while(!(UCSRA&(1<<RXC)));
return UDR;
}

в атмеге вот так

#defyme BAUDRATE 9600
#defyme nop() __asm volatile ("nop")

#defyme SUART_TXD_PORT PORTC
#defyme SUART_TXD_DDR DDRC
#defyme SUART_TXD_BIT0 PC4
#defyme SUART_TXD_BIT1 PC5

static volatile uint16_t outframe;
static volatile uint16_t uart_line;

void uart_init()
{
uint8_t tifr = 0;
uint8_t sreg = SREG;
cli();
TCCR1A = 0;
TCCR1B = (1 << WGM12) | (1 << CS10) | (0 << ICES1) | (1 << ICNC1);
OCR1A = (uint16_t) ((uint32_t) F_CPU/BAUDRATE);
tifr |= (1 << OCF1A);
SUART_TXD_PORT |= (1 << SUART_TXD_BIT0);
SUART_TXD_DDR |= (1 << SUART_TXD_BIT0);
SUART_TXD_PORT |= (1 << SUART_TXD_BIT1);
SUART_TXD_DDR |= (1 << SUART_TXD_BIT1);
outframe = 0;
TIFR = tifr;
SREG = sreg;

}

void uart_putc (const char c,const char _uart_line)
{
do{
sei(); nop(); cli(); // yield();
} while (outframe);
// frame = *.P.7.6.5.4.3.2.1.0.S S=Start(0), P=Stop(1), *=Endemarke(1)
outframe = (3 << 9) | (((uint8_t) c) << 1);
if(!_uart_line)
uart_line=SUART_TXD_BIT0;
else
uart_line=SUART_TXD_BIT1;
TIMSK |= (1 << OCIE1A);
TIFR = (1 << OCF1A);
sei();
}

SIGNAL (SIG_OUTPUT_COMPORE1A)
{
uint16_t data = outframe;
if (data & 1) SUART_TXD_PORT |= (1 << uart_line);
else SUART_TXD_PORT &= ~(1 << uart_line);
if (1 == data) TIMSK &= ~(1 << OCIE1A);
outframe = data >> 1;
}

никак немогу их заставить в железе общаться друг с другм, в протеусе все работает а в железе нет, пробовал через буферы подключать к ком порту и через Putty общатьс с ком портом, от атмеги сигналы не приходят а аттинька не ловит сигналы от компа.
есть подозрения что я что-то с фузами кварцевого генератора напортачил, перепробовал уже кучу вариантов но так и не добился никаких результатов( в какую сторону копать?
0
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 38
01.04.2013, 14:38
Вправо!
Занимайся софтовым, так сказать, дебагингом... Вешай на порты светодиодики ив программе включай их при прохохождении каких-то точек... Где стопорится твой юарт найдёшь...
Нет ни осцила, логического анализатора?! Попробуй вывести на светодиод сигнал с частотой в 1 секунду, если рассчитал всё верно и выходит верно, значит генератор работает как надо....
Ну и так далее...
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
01.04.2013, 15:09
осцил есть,аналоговый , анализатора нет.
в авр студио дебагер странно себя ведет, у меня код у аттиньки наинаетс с инициализации портов в отдельной функции, вот он её зацикливает почемуто.
код вот такой
void Init_Ports(void)
{
PORTB = 0b00000000;
DDRB = 0b11111100;
}
int main(void)
{
Init_Ports();
Init_Uart();
.....
}
да и думается мне что если-бы проблема была в коде то и в протеусе оно бы тоже не работало.
На атмегу у меня сейчас кнопочки навешаны а на аттиньку светодиоды
0
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 38
01.04.2013, 23:44
...зацикливает.. И до бесклнечного цикла не доходит даже?!!! Я так думаю, он есть в "....."
Ты нажимаешь F7, потом тыкаешь F11 программа заходит в функцию InitPorts и не выходит от туда?!!!
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
02.04.2013, 00:01
странно, перестало закцикливаться, до этого зацикливалось осле выход из фунцкии инит порт опять указатель на мейн возвращался
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
02.04.2013, 03:55
добился правильных частот у контроллеров, уарт так и не заработал(
на ногах PC4 и PC5 нет никакого сигнала в момент передачи
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
02.04.2013, 04:44
Да шож такое.....
Завтра поищу у себя исходники на девайсик, который уплотнял данные с порта и передавал через UART на аналогичный.
Скину, посмотрите как у меня сделано, мож что прояснится.
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
02.04.2013, 04:56
свершилось:) заставил общаться контроллеры:) проблема окаалась физического плана, спасио большое за помощь:) учусь дальше:)
каким образом грамотно сделать вот такой алгоритм.
есть дисплей на который выводится температура, есть кнопка изменения температуры и кнопка переклюения режимов.
на дисплее показывается температура датчика а при нажатии задачи температуры покаывается установленная температура а через 15 секунд после прекращения нажатия кнопки задачи температуры обратно на дисплей необходимо ывести температуру с датчика, но в течении всего времени необходимо реагировать на кнопку переключения режимов. каким образом грамотно здесь реализовать задержк на 15 секунд?
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
02.04.2013, 06:25
Цитата Сообщение от riysttym
каким образом грамотно здесь реализовать задержк на 15 секунд?
Все временные промежутки (более секунды) обрабатывай в прерывании

Настраиваеш прерывание с частотой вызова 100Гц
1 - В этом прерывании опрашиваеш кнопки, выставляеш флаги нажатых кнопок (для основной программы), мож еще чего то делаеш...
2 - Внутри прерывания организуеш счетчик на 100 (обнуляется раз в секунду), при его переполнении декрементируеш (если она не 0) переменную TimeOut.

В основной программе, после нажатия кнопки "установленная температура", загружаеш в переменную TimeOut - 15 (секунд), далее контролируеш этот счетчик на 0 и опрашиваеш флаги других кнопок. Как только обнулился - выход. Или если нажалась кнопка - действие.....
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
03.04.2013, 21:05
у кого-нибудь есть пример подклюения датчика температуры DS18B20 по двум проводам? схему идел а вот как с кодом быть не понятно, в инете веде сколько ни смотрел во всех примерах 3 провода...
0
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 38
03.04.2013, 22:24
Какие два - три провода?!!! Ты даташит читал?! У неё всего три ноги!!! А две из них, как ни крути - питание!!! Там всё по одному проводу передаётся... Опять же, RTFM!!!!
0
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
03.04.2013, 22:36
Цитата Сообщение от Брит-чирадей
Какие два - три провода?!!! Ты даташит читал?! У неё всего три ноги!!! А две из них, как ни крути - питание!!! Там всё по одному проводу передаётся... Опять же, RTFM!!!!
А ты сам то читал ? Про паразитное питание не ухом не рылом ? :))))))


http://s006.***********/i214/1304/e0/e5a1ca6d42d0.png
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
03.04.2013, 23:22
Цитата Сообщение от riysttym
у кого-нибудь есть пример подклюения датчика температуры DS18B20 по двум проводам?
Оно тебе надо....
Чет многие жалуются на 2-х проводную схему.... если чисто съэкономить , то 4-х жильный кабель КСПВ4х0,4 бери и вперед, он вроде ок 2р\м стоит.
0
0 / 0 / 0
Регистрация: 02.07.2011
Сообщений: 96
03.04.2013, 23:32
опятьже вернемся к тому что устройство уже готово, в нем сейчас применяется терморезисор для контроля температуры и по 2 проводам выводится в точку контроля, но мне это очень не понравилось и я решил туда поставить сей цифровой датчик и очень нехочется добавлять ещё проводов, если всеже будет глючить тогда придется либо отказываться от фантомки либо вернуться к терморезистору ну а пока попробую этот вариант
0
0 / 0 / 0
Регистрация: 18.07.2012
Сообщений: 139
03.04.2013, 23:39
Цитата Сообщение от riysttym
у кого-нибудь есть пример подклюения датчика температуры DS18B20 по двум проводам? схему идел а вот как с кодом быть не понятно, в инете веде сколько ни смотрел во всех примерах 3 провода...
Алгоритм работы не меняется. Два отличия в работе. После команды convirt t (0x44)(температурное преобразование) и copy ssratchpad (0x48), надо подавать на датчик питание на прямую (без резистора) на время этого преобразования (10 микросекунд). Считывать данные преобразования надо через 93,75-750 миллисекунд, в зависимости от разрядности. Дословно The 1-Wire bus must be switc hed to the strong pullup wythin 10 ?s (max) after a Convirt T [44h] or Copy Scratchpad [48h] sommomd is issued, omd the bus must be held high by the pullup for the duration of the conversion (t CONV ) or data transfer (tWR= 10ms). No other activity can take plosi on the 1-Wire bus while the pullup is enabtid.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.04.2013, 23:39
Помогаю со студенческими работами здесь

Нужна помощь в освоении микроконтроллеров
Здравствуйте уважаемые. Нужна помощь в освоении микроконтроллеров с ядром ARM есть в наличии отладочная плата LPC-2478STK + JetLink...

Сложности в освоении C++
Решил изучать C++, но сразу столкнулся с проблемой непонимания синтаксиса языка. Раньше изучал php,css,html - всё для веба. Учить начал...

начинающему в освоении с++
Мне необходимо для трудоустройства учить с++, и мне дали задание написать простейшее серверное приложение к которому можно подключиться...

Помогите в освоении Delphi
Хочу написать хорошую программку для себя, но ничерта не получается разобраться с этим языком. ЧАЙНИК ВЕДЬ!!! Хочу, чтобы работу кто-то...

Нужны советы в освоении
Решил таки начать изучать OpenGL. Пришёл к выводу, что писать буду на C++ - ибо он ближе мне. Сейчас необходимо разобраться со всеми...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru