roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Re: МикроКонтроллеры начинающим - общие вопросы

Ринатик » 24 июл 2008, 07:34

Спасибо Вам всем, не уходите далеко, у меня еще вопросы будут.

Re: МикроКонтроллеры начинающим - общие вопросы

Ринатик » 25 июл 2008, 14:46

О задаче z3, про 12-битный таймер. При симуляции в VMLAB, если при запуске нажать KC в Control Panel (сбросить в "0" вывод PB2), программа зацикливается в месте, где идет проверка исправности нагрузки:
Код: Выделить всёРазвернуть
if (PINB.2 == 0) 
{                       /* Если на PB2 лог. "0" - нагрузка неисправна или не подключена */
while (1)
             {
                // будем быстро мигать (период 0.3 сек) до устранения неисправности и нового включения питания таймера
delay_ms(150); // пауза 150 мС
PORTB.0 = 1;   // вЫкл светодиод

delay_ms(150); // пауза 150 мС
PORTB.0 = 0;   // вкл светодиод
       }; // это закрыв. скобка для while
} // это закрыв. скобка для if

и дальше, если нажать еще раз KC в Control Panel (т.е. сделать "1" на PB2), программа из этого цикла уже не выходит. Но если вместо while (1) вставить while (!PINB.2), то программа при установке "1" на PB2 выходит из этого цикла и продолжает нормальную работу.

Re: МикроКонтроллеры начинающим - общие вопросы

Сергей » 25 июл 2008, 15:10

правильно, потомучто стоит while( 1 ) то есть while( true ) то есть бесконечный цикл, и если в нем нету break то он реально бесконечный

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 25 июл 2008, 22:21

В комментариях (в куске исходника выше) ведь написано - это сделано специально, чтобы программа могла запустится тлько при новом включении таймера.

Re: МикроКонтроллеры начинающим - общие вопросы

Ринатик » 28 июл 2008, 10:07

Наверное я невнимательно прочитал. А вот я могу обнулить 7 и 6 биты в числе таким образом:
R10.6=0; R10.7=0; ?

Re: МикроКонтроллеры начинающим - общие вопросы

avr123.nm.ru » 28 июл 2008, 15:47

Ринатик писал(а):Наверное я невнимательно прочитал. А вот я могу обнулить 7 и 6 биты в числе таким образом:
R10.6=0; R10.7=0; ?

Учиться лучше с начала - ИМХО.

Re: МикроКонтроллеры начинающим - общие вопросы

Ринатик » 29 июл 2008, 12:27

Учиться лучше с начала - ИМХО.

Ответ не понятен, изучаю с самого начала. Вопрос был в задаче "Как ещё можно обнулить биты 7 и 6?". Это из задачи z3 про таймер. Вот я и думаю, у регистров 10 и 11 адреса согласно Figure8. Data Memory Map $0010 и $0011. В пятом уроке указано:
К битам регистров с адресами от 0 до 31 в компиляторе CodeVisionAVR можно обратится (и читать и записывать) проще.
Вот так: REGISTR.BIT

Т.е. я могу обнулить так, как писал выше?

Re: МикроКонтроллеры начинающим - общие вопросы

blindman » 29 июл 2008, 12:31

Ты хочешь изменять биты в регистрах процессора из программы на C? :o

Re: МикроКонтроллеры начинающим - общие вопросы

Ринатик » 29 июл 2008, 13:19

Сдается мне, что я ошибаюсь. Т.е. имелись ввиду (если смотреть REGISTER SUMMARY на ATMega8) регистры TWBR, TWSR,..., SFIOR, OSCCAL ?

Re: МикроКонтроллеры начинающим - общие вопросы

loid » 31 июл 2008, 11:59

Народ дело вот у меня какое, опять проблема. Раскажу всё что было. Занимался я чипом по имени ATMEGA16, всё было замечательно, до определённого момента пока он не стал определяться в CodeVisionAVR. Ну думаю, готов чип, новый покупать надо. Купил... Занимаюсь дальше, опять проблемка такая же. Вот только что прошивался а сейчас опять не видит его программатор. Думаю дело всё во фьюзах. Видимо при прошивке (не знаю каким образом) отключился JTAG. Что можно с этим сделать?

Re: МикроКонтроллеры начинающим - общие вопросы

EdGull » 31 июл 2008, 12:24

т.е. ты его через JTAG шьешь, а не черех ISP?

Re: МикроКонтроллеры начинающим - общие вопросы

loid » 31 июл 2008, 12:28

Если не ошибаюсь - шью через JTAG. Другими словами подключаю чип ATMEGA16 к порту B, через пять проводков.

Re: МикроКонтроллеры начинающим - общие вопросы

EdGull » 31 июл 2008, 12:49

каким программатором?

Re: МикроКонтроллеры начинающим - общие вопросы

loid » 31 июл 2008, 13:03

Прошиваю программой CodeVisionAVR через "пять проводков" подключенных к LPT

Re: МикроКонтроллеры начинающим - общие вопросы

EdGull » 31 июл 2008, 13:06

тогда ты шьешь через ISP
JTAG тут ваще никаким боком не причем


Rambler\'s Top100 Mail.ru counter