Форум РадиоКот http://radiokot.ru/forum/ |
|
AVR studio в вопросах и ответах http://radiokot.ru/forum/viewtopic.php?f=57&t=6996 |
Страница 145 из 151 |
Автор: | Vlad_RK [ Ср янв 09, 2019 10:00:18 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Желательно, чтобы и в пути к файлам не было русских букв. |
Автор: | bango [ Ср янв 09, 2019 12:30:30 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
спасибо за помощь откомпилировал (машинально написал ) |
Автор: | bango [ Пн янв 14, 2019 06:57:40 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Привет всем форумчанам. Помогите разобраться с таймером 0 Attini 2313 не работает не входит в прерывания. Код: #define F_CPU 16000000UL // установка в программе частоты процессора
#include <avr/io.h>//библиотека для портов вводы вывода #include <avr/interrupt.h>//библиотека прерываний //---------- // обработка прерывания //---------- // comp при совпадении ISR (TIMER0_COMPA_vect) { asm("nop"); PORTB = 0b00000001; } //ovf при переполнении ISR (TIMER0_OVF_vect) { asm("nop"); PORTB = 0b00000010; } int main(void) { DDRB = 0b11111111; // Определение направления Порта В работает на выход PORTB = 0b11111100; // Подтягиваем резисторами не используемые биты //---------- //задаем режим работы таймера счетчика 0 //---------- // // устанавливаем делитель 1024 (101) TCCR0B |= (1<<CS00); TCCR0B |= (1<<CS02); TCCR0A |= (1<<WGM01); // WGM = 010 - режим CTC(сброс по совпадению) //разрешаем прерывание таймера т0 при событии совпадение //устанавливаем бит разрешения прерывания 0го счетчика // по совпадению с OCR0A TIMSK |= (1<<OCIE0A);//при совпадении (1 - OCIE0A) при переполнении (1 - TOIE0) //OCR0B = 150;// заносим в регистр число для сравнения OCR0A = 100; asm ("sei"); while(1) { asm("nop"); //установим паузу } } |
Автор: | Ivanoff-iv [ Пн янв 14, 2019 09:28:25 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
а при переполнении чего не разрешил? он в совпадение заходит а порт и так в том состоянии, в которое его перевести надо, потому изменения и не видны Добавлено after 1 minute 54 seconds: при такой как у тебя записи регистр надо сначала обнулять иначе, если там чтото было - то результат будет непредсказуем (это я про запись в TCCR0A, TCCR0B, TIMSK...) разве студия не дает записать: TCCR0B = (1<<CS00|1<<CS02); или TCCR0B = (5<<CS00); ![]() |
Автор: | bango [ Пн янв 14, 2019 10:00:13 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Цитата: при такой как у тебя записи регистр надо сначала обнулять иначе, если там чтото было - то результат будет непредсказуем (это я про запись в TCCR0A, TCCR0B, TIMSK...) В даташите написано что эти биты изначально в нуле. (а как это сделать, а то я себе это плохо представляю) Цитата: разве студия не дает записать: TCCR0B = (1<<CS00|1<<CS02); или TCCR0B = (5<<CS00); Не пробовал ну наверно может я только учусь и о компактности кода даже не задумываюсь. |
Автор: | prinv [ Пн янв 14, 2019 10:11:44 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Как-то вы сзаду наперёд делаете. Запустили таймер, а потом начали его настраивать. |
Автор: | bango [ Пн янв 14, 2019 10:32:03 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Вы имели в веду что код надо писать так Код: TIMSK |= (1<<OCIE0A);//при совпадении (1 - OCIE0A) при переполнении (1 - TOIE0) TCCR0A |= (1<<WGM01); // WGM = 010 - режим CTC(сброс по совпадению) TCCR0B |= (1<<CS00); TCCR0B |= (1<<CS02); но этот код тоже не работает |
Автор: | prinv [ Пн янв 14, 2019 10:36:31 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Не работает - не появляются единички в младших битах PORTB? |
Автор: | bango [ Пн янв 14, 2019 10:43:54 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Я когда запускаю отладчик по шагам я не вижу как таймер считает, а 1ца в порте В появляется как то не понятно. TCNT0 доходит до 78 и сет останавливается. |
Автор: | prinv [ Пн янв 14, 2019 10:46:07 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Попробуйте breakpoint в обработчике прерывания поставить |
Автор: | Ivanoff-iv [ Пн янв 14, 2019 11:05:24 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
а при переполнении чего не разрешил? он в совпадение заходит а порт и так в том состоянии, в которое его перевести надо, потому изменения и не видны попробуй: TIMSK = (1<<OCIE0A|1<<TOIE0); |
Автор: | bango [ Пн янв 14, 2019 11:23:05 ] | ||
Заголовок сообщения: | Re: AVR studio в вопросах и ответах | ||
не получается вот проект для наглядности с протеусом
|
Автор: | akl [ Пн янв 14, 2019 11:49:29 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
В режиме CTC прерывание переполнения с таким значением OCR0A=100 никогда не вызовется. Попробуйте asm("nop"); ; PORTB = 0b00000001; PINB = 0b00000011; |
Автор: | Ivanoff-iv [ Пн янв 14, 2019 11:53:17 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
ещё: у тебя режим по совпадению, попробуй для начала в обычном режиме... Добавлено after 2 minutes 2 seconds: а с каким вызовется? ![]() правильно, если нужны 2 прерывания, в режиме СТС то задействуй прерывание Б. (т.к. А у этого МК связан с переполнением) |
Автор: | bango [ Вт мар 12, 2019 11:57:03 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
подскажите как выставить микросхему AT90S2313_10PI в AVR studio 6 при создании проекта в списке микросхем такой микросхемы нет, как с этим бороться. |
Автор: | serg_svd [ Вт мар 12, 2019 15:09:32 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Наивный и глупый вопрос по интерфейсу программы от меня. Можно ли как-то сворачивать записи циклов, условных переходов? Функции то можно свернуть, нажав слева на значок минуса. А то иногда целая куча фигурных скобок сбивает с толку. Если не ошибаюсь, в кодевижене была такая фишка. А тут не могу в настройках найти. Просто бывают очень длинные записи внутри циклов. Бить на подпрограммы смысла нет. А хочется как-то упростить чтение кода, пропуская уже отлаженные куски внутри программы |
Автор: | dr.doc [ Пт апр 05, 2019 10:38:21 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Atmel Studio 6.0. Игнорирует участки с кодом. Как заставить компилятор выполнять все участки? Кроме случая с отключением оптимизации. Пример кода: В коде показана задержка, реализованная при помощи аппаратных прерываний по таймеру, по которому указанный в while флаг сбрасывается. Так вот компилятор творит хз. Пример дизассемблерного кода: Подскажите, что мне можно сделать. Код пока тестовый, но мне нужно, чтобы строка flag_stopped.bit.bf6 = 0; обязательно выполнялась. Спасибо. |
Автор: | ARV [ Пт апр 05, 2019 11:13:03 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
вангую, у вас flag_fl.bit.b2 не объявлена volatile, но присвоена единичке. в итоге компилятор уверен, что эта единичка - вечная, и стопорит программу. |
Автор: | Vlad_RK [ Пт апр 05, 2019 11:41:51 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Atmel Studio 6.0. Игнорирует участки с кодом. Попробуйте AVR Studio 5.1 с этим же кодом, 6-я и у меня неправильно работает. Как и 7-я. |
Автор: | ARV [ Пт апр 05, 2019 11:43:58 ] |
Заголовок сообщения: | Re: AVR studio в вопросах и ответах |
Попробуйте AVR Studio 5.1 с этим же кодом, 6-я и у меня неправильно работает. Как и 7-я. лучше попробуйте повысить свои знания в Си - уверен, студия станет работать намного правильнее ![]() |
Страница 145 из 151 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |