roboforum.ru

Технический форум по робототехнике.
Текущее время: 01 ноя 2024, 20:22

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 115, 116, 117, 118, 119, 120, 121 ... 144  След.
Автор Сообщение
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 27 сен 2010, 13:31 
Не в сети

Зарегистрирован: 27 сен 2010, 13:12
Сообщения: 2
помогите пожалуйста с написанием кода в AVRstudio для мк Atmel ...
Задача : " Запишите в регистры R1 и R2 адрес ячейки памяти 001D . Запишите в эту ячейку число 44, а в регистр R5 – число BB. Сложите (R5) с содержимым ячейки памяти 001D. "

написал код
ldi r17 , 00
mov r1 , r17
ldi r16 , 0x1D
mov r2 , r16
; до сюда думаю правильно, далее как записать в эту ячйку число 44 незнаю..предположил что можно так:
ldi r18 , 44
sts 0x001D , r18

посмотрите пожалуйста, правильно что ли?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 29 сен 2010, 00:33 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
Проще всего проверить код в AVR Studio

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 29 сен 2010, 00:44 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
да в общем-то правильно...
ну, если придираться, то обычно в АВР-ках старший байт адреса кладут в старший регистр -
например, если используется регистровая пара как указатель, то нужно делать именно так.
(r1 и r2 - это не пара, так что в общем можно как попало запихивать, хотя это и "некрасиво")

ну и еще, довольно странно в качестве временного регистра выбирать каждый раз разные регистры...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 29 сен 2010, 23:06 
Не в сети

Зарегистрирован: 27 сен 2010, 13:12
Сообщения: 2
сделал задание до конца, и чето не получается..
задание " Запишите в регистры R1 и R2 адрес ячейки памяти 001D . Запишите в эту ячейку число 4, а в регистр R5 – число 3. Сложите (R5) с содержимым ячейки памяти 001D. Результат перешлите в регистр R6. Просмотрите R5, R 6 и ячейку памяти 001D. "

с учетом Вашего замечания получился такой код:

ldi r17 , 00
mov r1 , r17
ldi r16 , 0x1D
mov r2 , r16 ; записали ячейку 001D в регистры r1 и r2

mov r26 , r2
mov r27 , r1 ; теперь ячейка записана в паре регистров Х

ldi r18 , 4
st X , r18 ; в ячейку записали число 4

ldi r19 , 3
mov r5 , r19 ; в регистр r5 записали число 3

ld r20 , X ; содержимое ячейки выписали в r20

add r5 , r20 ; сложили r5 с содержимым ячейки

в последней строчке мы сложили r5=3 с r20=4 , в результате в r5 мы должны получить 7 !?? но почемуто там получается 11 (или в 16ричной системе В )
и в чем может быть ошибка??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 29 сен 2010, 23:47 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Замечания тут ни при чем - код вы зря запутали.
На первый взгляд должно работать (несмотря на полный идиотизм задания :))
Отлаживайтесь в AVR Studio по шагам.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 30 сен 2010, 13:39 
Не в сети
Аватара пользователя

Зарегистрирован: 20 сен 2007, 11:44
Сообщения: 491
Откуда: Харьков
Skype: Victorovych_FF
прог. языки: ASM
ФИО: Иван ВикторОвич
Так по-моему правильнее будет :crazy: :
Код:
   clr r1      ;
   ldi r16,$1D   ;Запишите в регистры R1 и R2 адрес ячейки памяти 001D
   mov r2,r16   ;

   ldi r29,$04   ;
   mov r5,r29   ;  Запишите в эту ячейку число 4, а в регистр R5 – число 3
   dec r5      ;

   add r5,r29   ;Сложите (R5) с содержимым ячейки памяти 001D

   mov r6,r5   ;Результат перешлите в регистр R6


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 01 окт 2010, 12:26 
Не в сети
Аватара пользователя

Зарегистрирован: 30 дек 2009, 08:16
Сообщения: 106
Откуда: Омск
Skype: hedgehoguse
Всем привет!
Чего-то я завис, ядрышко mega16, вот такой код:
Код:
//Настройка таймера 2
ASSR=0x00;
TCCR2=0b00001001;//Режим СТС, без прескалера
TCNT2=0x00;
OCR2=0x12;

#asm("sei")

interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
// Place your code here
    PORTD.0=~PORTD.0;   
}


Хочу чтобы выполнялся код в прерывании (это для теста написана строчка), в протеусе работает, в реальности нет. Где грабли? :oops:

_________________
В гугле есть все! Даже то, чего еще нет!

Не спорь с холостяком о макаронах!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 01 окт 2010, 13:25 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
может timsk забыли? а может main :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 01 окт 2010, 13:29 
Не в сети
Аватара пользователя

Зарегистрирован: 30 дек 2009, 08:16
Сообщения: 106
Откуда: Омск
Skype: hedgehoguse
Сорри, насобирал кусками с проекта необходимые на мой взгляд строки, поэтому мог запутать, вот так это все выглядит:
Код:
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
// Place your code here
    PORTD.0=~PORTD.0;   
}

void main(void)
{
//Настройка таймера 2
ASSR=0x00;
TCCR2=0b00001001;//Режим СТС, без прескалера
TCNT2=0x00;
OCR2=0x12;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x40;

#asm("sei")
}

_________________
В гугле есть все! Даже то, чего еще нет!

Не спорь с холостяком о макаронах!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 01 окт 2010, 13:52 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Я так и понял...
На первый взгляд должно работать. :pardon:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 01 окт 2010, 13:59 
Не в сети
Аватара пользователя

Зарегистрирован: 30 дек 2009, 08:16
Сообщения: 106
Откуда: Омск
Skype: hedgehoguse
Я тоже так считаю, но вот что на выходе реального МК, тогда как в протеусе все нормально


Вложения:
Шум на PD0.JPG
Шум на PD0.JPG [ 39.56 КиБ | Просмотров: 1570 ]

_________________
В гугле есть все! Даже то, чего еще нет!

Не спорь с холостяком о макаронах!
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 01 окт 2010, 16:35 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
Ничего удивительного. Ногу на вывод кто будет настраивать?

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 01 окт 2010, 16:35 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Ахха... ТОЧНО!!! :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 01 окт 2010, 19:50 
Не в сети
Аватара пользователя

Зарегистрирован: 30 дек 2009, 08:16
Сообщения: 106
Откуда: Омск
Skype: hedgehoguse
Да она-то настроена - кусочками собирал код с проекта )) забыл эту строку сюда засунуть. К тому же - в Протеусе работает, да и не скомпилируется по-моему, если не настроить. Тут чет другое :-X

Добавлено спустя 17 минут 1 секунду:
Проверил - если не настраивать на выход, то компилируется, но в Протеусе не пашет :-X

Добавлено спустя 5 минут 29 секунд:
Еще раз прикладываю полный уже (удалил все ненужное и скопипастил) код "проекта":
Код:
#include <mega16.h>

// Timer 2 overflow interrupt service routine
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
// Place your code here
    PORTD.0=~PORTD.0;   
}

// Declare your global variables here

void main(void)
{
// Port D initialization
PORTD=0x02;
DDRD=0xFF;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 1000,000 kHz
// Mode: Normal top=FFh
// OC2 output: Toggle on compare match
ASSR=0x00;
TCCR2=0b00001001;
TCNT2=0x00;
OCR2=0x12;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x40;

// Global enable interrupts
#asm("sei")

while (1)
      {
      // Place your code here
      };
}


И еще настройки фьюзов реального МК:
Вложение:
Fuses.JPG
Fuses.JPG [ 7.43 КиБ | Просмотров: 1535 ]

_________________
В гугле есть все! Даже то, чего еще нет!

Не спорь с холостяком о макаронах!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: МикроКонтроллер AVR начинающим - общие вопросы
СообщениеДобавлено: 02 окт 2010, 03:22 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2008, 21:15
Сообщения: 4130
Откуда: Хабаровск
прог. языки: C,C++,Assembler,PHP,Javascript,Ruby, SPIN,Java(?)
ФИО: Андрей Юрьевич
На картинке - типичная осциллограмма с висящего в воздухе провода. Проверяй монтаж, убедись что контроллер шьется правильно, и вообще может не на той ноге смотришь

_________________
Проект [[Open Robotics]] - универсальные модули для построения роботов
Модули Open Robotics можно приобрести в магазине shop.roboforum.ru

Day OFF? You must be pulling my leg! Stop making humor before someone sees you, fool!



Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2149 ]  На страницу Пред.  1 ... 115, 116, 117, 118, 119, 120, 121 ... 144  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO