Easyelectronics.ru • Просмотр темы - Чтение из SREG ATMega8A

Easyelectronics.ru

Электроника для всех
Текущее время: 14 авг 2018, 13:29

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



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Чтение из SREG ATMega8A
СообщениеДобавлено: 03 май 2018, 13:19 
Заглядывает иногда

Зарегистрирован: 03 фев 2015, 18:37
Сообщения: 62
Всем добрый день! Что-то я не въезжаю, пишу в Atmel студии 7-ой, пытаюсь читать из SREG, а там нули, причем перед этим ставил флаг Z в 1-ку. Смотрю адресацию, в инклуде студии адрес SREG 0x3F, смотрю в отладчике той же студии в менюшке I/O адрес 0x5F, что за нафиг, откуда смещение берется в 20 адресов?... Может я чего недопонимаю или студия чудит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение из SREG ATMega8A
СообщениеДобавлено: 03 май 2018, 13:26 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2925
даташит, Figure 12-2. Data Memory Map


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение из SREG ATMega8A
СообщениеДобавлено: 03 май 2018, 13:47 
Заглядывает иногда

Зарегистрирован: 03 фев 2015, 18:37
Сообщения: 62
Уже разобрался, адрес регистра ввода вывода 3F, к нему можно обратиться через IN, а если через ST, то адрес в памяти 5F


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение из SREG ATMega8A
СообщениеДобавлено: 07 май 2018, 15:59 
Заглядывает иногда

Зарегистрирован: 03 фев 2015, 18:37
Сообщения: 62
И еще ребят, не могу понять, можно как-то считать program counter, не могу найти что-то...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение из SREG ATMega8A
СообщениеДобавлено: 07 май 2018, 16:07 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4635
Как можно считать то, что изменяется в процессе выполнения процедуры считывания? ......
Но, если нужно знать реальный адрес некоторой конструкции, то можно сделать так:
call far test_label
test_label: pop reg
В результате, в reg будет лежать реальный адрес test_label.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение из SREG ATMega8A
СообщениеДобавлено: 07 май 2018, 16:49 
Заглядывает иногда

Зарегистрирован: 03 фев 2015, 18:37
Сообщения: 62
Да есть мысли сгородить что-то вроде обработчика очереди процессов, чтобы можно было делить процессы по времени, выделять квант времени на часть процесса и переходить на другой, сохраняя информацию о предыдущем, т.е. адрес окончания, чтобы можно было вернуться к следующей команде, для этого как минимум надо считать состояние SREG и знать следующий адрес в PC. Была мысль через Stack Pointer попробовать, потому как он в стек пишет адрес как раз возвращения из CALL или прерывания, что в моем случае более актуально, т.к. время отсчитывать будет как раз счетчик и срабатывать прерывание, а адрес доставать как раз из стека, но тогда нужно будет как-то вылазить из прерывания по другому адресу, т.е. адресу следующего процесса, идея рабочая, можно попробовать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение из SREG ATMega8A
СообщениеДобавлено: 07 май 2018, 17:18 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4635
"как-то вылазить из прерывания по другому адресу"
Заменяйте значение, лежащее в стеке перед тем, как сделать ret. Так все делают. ))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение из SREG ATMega8A
СообщениеДобавлено: 07 май 2018, 17:39 
Старожил

Зарегистрирован: 25 фев 2011, 18:45
Сообщения: 3465
Откуда: Новосибирск
Ищите по словам rtos asm. Я делал простейший вытесняющий диспетчер. Проект рабочий. Вникать будете сами. Причина проста. Работу со стеком нужно изучить так, чтобы от зубов отскакивало. Сами понимаете, малейшая ошибка приведет к срыву программы. И ладно если это некритичное устройство. А если блок управления станком?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение из SREG ATMega8A
СообщениеДобавлено: 14 май 2018, 18:57 
Заглядывает иногда

Зарегистрирован: 03 фев 2015, 18:37
Сообщения: 62
demiurg1978, да вы правы со стеком, от идей с квантом времени на часть задачи и переход на другую, с учетом возможности возврата и выполнения предыдущей с момента выхода, начинаю отказываться, слишком много сложностей со стеком возникает, а именно надо знать размер стека, что в принципе не сложно и каждый раз его сохранять для каждого процесса отдельно, вот здесь и кроется основная сложность, т.к. величина эта будет очень динамична и рассчитывать для каждого процесса глубину стека, заранее выделяя область в оперативной памяти, какой-то сущий геморой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение из SREG ATMega8A
СообщениеДобавлено: 14 май 2018, 19:07 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4635
Гимор - есссно. Но работает.
Каждому процессу выделяется свой стек (кусок адресов) и в стеке обработчика следует лишь переставлять указатель на текущее значение стека этого процесса. Все данные процессов лежат в своих стеках, их никто не переписывает.
Да, "адрес" всегда один и тот-же (SP-N, N=const), поэтому никаких хитрых вычислений не требуется. ))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение из SREG ATMega8A
СообщениеДобавлено: 15 май 2018, 12:03 
Заглядывает иногда

Зарегистрирован: 10 фев 2016, 19:55
Сообщения: 196
sashavir писал(а):
Да есть мысли сгородить что-то вроде обработчика очереди процессов, чтобы можно было делить процессы по времени, выделять квант времени на часть процесса и переходить на другой, сохраняя информацию о предыдущем, т.е. адрес окончания, чтобы можно было вернуться к следующей команде

Эта задача решена -- https://bitbucket.org/dferreyra/avr-threads/wiki/Home


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Чтение из SREG ATMega8A
СообщениеДобавлено: 15 май 2018, 16:11 
Заглядывает иногда

Зарегистрирован: 03 фев 2015, 18:37
Сообщения: 62
Netzschlange, копипастом уровня дзен не достигнешь....


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

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


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

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


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB