реклама на сайте
подробности

 
 
> Sub-Second interrupt от RTC
evgen2
сообщение Apr 6 2010, 17:52
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Вот в LPC2378 есть в RTC регистр:

CISS Counter Increment select mask for R/W * 0xE002 4040 Sub-Second interrupt


The CISS register provides a way to obtain millisecond-range periodic CPU interrupts
from the Real Time Clock. This can allow freeing up one of the general purpose timers, or
support power saving by putting the CPU into a reduced power mode between periodic
interrupts.
Carry out signals from different stages of the Clock Tick Counter are used to generate the
sub-second interrupts. The possibilities range from 16 counts of the CTC (about
488microseconds), up to 2,048 counts of the CTC (about 62.5milliseconds). The
available counts and corresponding times are given in

1.) Сдается мне, что в доке в два раза наврано - не от 16 до 2048, а от 32 до 4096
2) А почему нет аналогов CISS не только у более старших чипов, но и у более младших ?

Сообщение отредактировал evgen2 - Apr 6 2010, 17:53
Go to the top of the page
 
+Quote Post
2 страниц V  < 1 2  
Start new topic
Ответов (15 - 26)
zltigo
сообщение Apr 8 2010, 07:39
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Apr 8 2010, 09:37) *
Если в указанном выше коде заменить RTC_CTC на (RTC_CTC&0x7fff) - результат не изменится.
Ответы даны в ответе rezident'у.

Естественно особо не изменится. Ответ неверен. Продолжайте изучать скриншот любезно вылошенный rezident-ом . До того, когда сможете ответить на второй вопрос.
Цитата
но приведенный код читает этот регистр после прерывания, поэтому у регистра CTCR нет времени еще раз измениться.

Вы обладаете сокровенными знаниями о том, когда и в течении какого времени CTCR изменяется? Нет? Тогда, особенно, если чеог-то там не получается ВСЕ фантазии оставьте при себе.
Цитата(evgen2 @ Apr 8 2010, 09:37) *
При этом в на сайте кейла лежит rev 2

А на сайте средней школы номер 1 города задрищенска лежит ревизия 0. Ну и что? Документация берется на сайте производителя.
Цитата
Для тестового кода игнорирование 16/32 - некошерно, но допустимо

Ваши упражнения в программировании навевают тоску sad.gif. Если-бы Вы банально взяли два unsigned short, и вычитали их друг из друга без всяких дополнительных телодвижений, то получили-бы искомую разницу всегда правильную, а не иногда. Арифметика, однако.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
evgen2
сообщение Apr 8 2010, 07:48
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(zltigo @ Apr 8 2010, 11:54) *
Естественно особо не изменится. Продолжайте читать документацию.

Вы обладаете сокровенными знаниями о том, когда и в течении какого времени CTCR изменяется? Нет? Тогда, особенно, если чеог-то там не получается ВСЕ фантазии оставьте при себе.

А на сайте средней школы номер 1 города задрищенска лежит ревизия 0. Ну и что?

Поскольку вы не желаете предъявлять свой супер-пупер правильный и великий код в нескольких строчках - остается констатировать, что "оппонент слил".

Указать в форуме в "помощь начинающему" на конкретную (а не формальную) ошибку в коде вы не желаете, объяснить почему указанный код в эмуляторе исполняется согласно документации, а на реальном железе иначе (изменение значения счетчика между прерывниями отличается в 2 раза от документации в то время как время между прерываниями соответствует) - не можете, но строите из себя...
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 8 2010, 07:53
Сообщение #18


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(evgen2 @ Apr 8 2010, 14:03) *
...

Я не понимаю о чём вы тут, но судя по картинке от rezident-а, надо читать не RTC_CTC, и не RTC_CTC&0x7fff, а RTC_CTC >> 1, т.к там биты 15..1.
Возможно эмулятор работает по предыдущей, ошибочной версии документации.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 8 2010, 08:45
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Apr 8 2010, 10:03) *
Указать в форуме в "помощь начинающему" на....

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

Вы бы лучше свои возможности трезвее оценивали sad.gif
Цитата(evgen2 @ Apr 8 2010, 10:03) *
Поскольку вы не желаете предъявлять свой супер-пупер правильный и великий код в нескольких строчках - остается констатировать, что "оппонент слил".

Очень пафосно smile.gif. Это Ваш обработчик прерывания
Код
__irq  void RTCHandler (void)
{      RTC_ILR |= ILR_RTSSF;
    alarm_on = 1;
    VICVectAddr = 0;        /* Acknowledge Interrupt */
}

Документацию не читаем, или не понимаем, или понимаем не так, посему зачем-то пишем
RTC_ILR |= ILR_RTSSF;
При этом явно игнорируя требование документа:
Код
2   - RTSSF  When one, the Counter Increment Sub-Seconds interrupt is generated.
The interrupt rate is determined by the CISS register.
7:3 - Reserved, user software should not write ones to reserved bits. The
value read from a reserved bit is not defined.

Ну а теперь в этот обработчик вместо всей Вашей мути с интами, сравнениями и анализами:
Код
unsigned short value
__irq  void RTCHandler (void)
{      RTC_ILR = ILR_RTSSF;
// Те самые несколько строк:
    unsigned short new_value = RTC_CTC & 0xFFFE;
    value = new_value - value;
    if( value != 2048<<1 )
    {       Тут, например, ругаемся Invalid CTC:.....   }
    value = new_value;
// Конец нескольких строк
    VICVectAddr = 0;        /* Acknowledge Interrupt */
}

Вы не поверите! Но 2048 всегда.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
evgen2
сообщение Apr 8 2010, 09:25
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(AHTOXA @ Apr 8 2010, 12:08) *
Я не понимаю о чём вы тут, но судя по картинке от rezident-а, надо читать не RTC_CTC, и не RTC_CTC&0x7fff, а RTC_CTC >> 1, т.к там биты 15..1.
Возможно эмулятор работает по предыдущей, ошибочной версии документации.

Аааа.... Вот вы пишете как человек. а не как сноб, и все сразу становится понятно...

Я на эту картинку, только в версиях от rev 1 24.11.2006 и 27.03.2007 все глаза просмотрел, только что не "распечатал на принтере и насквозь смотрел". А там как раз ошибка. И этот текст тут помещал 14:0 Clock Tick Prior to the Seconds counter.

zltigo его умудрился не заметить и продолжил воспитание. Я на предъявленной картинке умудрился увидеть только подпись красным фломастером про 16 бит. И на специально скачанных версиях v2 и v3 "смотрел в книгу - видел фигу". Потому как глаз уже замылился.

Короче - старый хрен. Как минимум один.


Цитата(zltigo @ Apr 8 2010, 13:00) *
Очень пафосно smile.gif
Документацию не читаем,


Кусок документации я вам предъявил из v1. Вместо того, чтоб сказать, что тут ошибка и надо читать v3, вы начали воспитывать. Эффект от воспитывания деятелей вроде вас явно предсказуем.


Цитата(zltigo @ Apr 8 2010, 13:00) *
Документацию не читаем, или не понимаем, или понимаем не так, посему зачем-то пишем
RTC_ILR |= ILR_RTSSF;


Вы не поверите, но это модификация из родного code.bundle.lpc23xx.lpc24xx.uvision.zip для случая SS
См \Keil\RTC\rtc.c

Код
void RTCHandler (void) __irq
{  
    RTC_ILR |= ILR_RTCCIF;        /* clear interrupt flag */
    IENABLE;            /* handles nested interrupt */

    alarm_on = 1;

    IDISABLE;
    VICVectAddr = 0;        /* Acknowledge Interrupt */
}

----------
И, кстати о птичках. Доложите о ваших результатах, получаемых в Keil'овском симуляторе

Сообщение отредактировал evgen2 - Apr 8 2010, 09:35
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 8 2010, 10:23
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Apr 8 2010, 11:40) *
Вы не поверите, но это модификация из родного code.bundle.lpc23xx.lpc24xx.uvision.zip для случая SS
См \Keil\RTC\rtc.c

Верю. Встречал и писал о перлах от Keil, ST и прочих не раз. Не надо пользоваться всякими халявными примерами. Надо самому думать и читать документацию а не исходники неведомых писателей.
Цитата
Доложите о ваших результатах, получаемых в Keil'овском симуляторе

Разбежался smile.gif Никогда не марался дубовыми симуляторами железа по причине полной нахренненужности и впредь не буду. Я умею читать документацию, умею обдумывать прочитанное опираясь на опыт, умею обращаться в службу поддержки, умею искать в интернете, знаю за какой конец надо держать паяльник и умею провести лабораторную работу, и могу написать несколько десятков строчек сразу без ошибок. Зачем мне тянуть к себе ошибки бангалорских студентов и писателей симуляторов?
Еще могу дать совет и намек. Только тем, кто считает так http://electronix.ru/forum/index.php?showtopic=74649&hl= эти советы скорее всего не помогут sad.gif
Цитата(evgen2 @ Apr 8 2010, 11:40) *
Вместо того, чтоб сказать, что тут ошибка и надо читать v3, вы начали воспитывать.

Не зарывайтесь, я понятия не имею, о чем написано в некой V1 и какие там ошибки и тем более что Вы ее читаете. С осени прошлого года на сайте производителя лежит документация, полное название которой я Вам дал в посте #13, которую Вы НЕ читаете. Так прочитайте и не морочьте людям голову.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 8 2010, 10:30
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(evgen2 @ Apr 8 2010, 15:40) *
Я на предъявленной картинке умудрился увидеть только подпись красным фломастером про 16 бит.
Дык я в пайнте подписал "16 бит", имея в виду, разрядность регистра, а не выделенного диапазона. Уже после создания сообщения подумал, что кто-то может привязаться, что я выделил 15 бит, а не 16, но исправлять было лень smile.gif
Go to the top of the page
 
+Quote Post
evgen2
сообщение Apr 8 2010, 11:25
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(zltigo @ Apr 8 2010, 13:38) *
Верю. Встречал и писал о перлах от Keil, ST и прочих не раз. Не надо пользоваться всякими халявными примерами. Надо самому думать и читать документацию а не исходники неведомых писателей.

Ага. Только вот находится этот code.bundle.lpc23xx.lpc24xx.uvision.zip на сайте NPX в разделе документации.( http://www.standardics.nxp.com/support/doc...4xx.uvision.zip )
Или там тоже "неведомые писатели" пишут ?

Цитата(zltigo @ Apr 8 2010, 13:38) *
Разбежался smile.gif Никогда не марался дубовыми симуляторами железа по причине полной нахренненужности и впредь не буду. Я умею читать документацию, умею обдумывать прочитанное опираясь на опыт, умею обращаться в службу поддержки, умею искать в интернете, знаю за какой конец надо держать паяльник и умею провести лабораторную работу, и могу написать несколько десятков строчек сразу без ошибок. Зачем мне тянуть к себе ошибки бангалорских студентов и писателей симуляторов?

Т.е. сообщение о ошибке в симуляторе (чего я по факту нашел) - это не есть тема для обсуждения в форуме по ARM, потому што "правильные пацаны" никогда не пользуют симулятор ?

Цитата(zltigo @ Apr 8 2010, 13:38) *
Еще могу дать совет и намек. Только тем, кто считает так http://electronix.ru/forum/index.php?showtopic=74649&hl= эти советы скорее всего не помогут sad.gif

Простите, как вы там себя повели - тоже характеризует вас как последнего (бип! самоцензура). Во всех кейловских примерах для всех кейловских плат стоит 40, а не 0x40 и мне отчего-то кажется, что на кейловских платах никаких проблем нет.

Цитата(zltigo @ Apr 8 2010, 13:38) *
Не зарывайтесь, я понятия не имею, о чем написано в некой V1 и какие там ошибки и тем более что Вы ее читаете. С осени прошлого года на сайте производителя лежит документация, полное название которой я Вам дал в посте #13, которую Вы НЕ читаете. Так прочитайте и не морочьте людям голову.

Вы написали пост #13 после того, как меня совсем запутали и обосрали с ног до головы, после моего поста #12 http://electronix.ru/forum/index.php?showt...st&p=741276 в котором я цитировал глючную документацию.

После того, как я для совсем идиотов несколько раз повторил, что в симуляторе и живьем поведение отличается.



Цитата(rezident @ Apr 8 2010, 13:45) *
Дык я в пайнте подписал "16 бит", имея в виду, разрядность регистра, а не выделенного диапазона. Уже после создания сообщения подумал, что кто-то может привязаться, что я выделил 15 бит, а не 16, но исправлять было лень smile.gif

Так я на разрядность и обратил внимание. А что он, сволочь, оказался сдвинут на 1 бит по сравнению с v1 документации - не обратил.

Сообщение отредактировал evgen2 - Apr 8 2010, 11:32
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 8 2010, 13:20
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(evgen2 @ Apr 8 2010, 13:40) *
Или там тоже "неведомые писатели" пишут ?

Именно так.
Цитата
Т.е. сообщение о ошибке в симуляторе (чего я по факту нашел)

Хватит юлить. Вы жаловались не на симулятор, в котором Вам все нравилось.
Цитата
потому што "правильные пацаны" никогда не пользуют симулятор ?

Не совсем понимаю, что Вы подразумеваете под словом "правильные", но имеющие свою голову на плечах не используют.
Цитата
Во всех кейловских примерах для всех кейловских плат стоит 40, а не 0x40 и мне отчего-то кажется, что на кейловских платах никаких проблем нет.

Когда кажется нужно креститься, так на Руси говорят, а не рассказывать на форуме о том, что Вам кажется. Не будет он работать при 40(dec) и ни от каких плат хоть с надписью Keil, хоть Apple это не зависит. Учите матчасть LCD контроллера.
Цитата
После того, как я для совсем идиотов....

После чего, и до сего момента Вы пытаетесь глупо выкручиваться и флеймить.
Достаточно.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
evgen2
сообщение Apr 8 2010, 15:54
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(zltigo @ Apr 8 2010, 19:46) *
Могу, наконец, и обидится на непроходимое ламерство.

А вы думаете, я на вас не обиделся ? Вы - "человек с паяльником" и осциллоскопом, я - без того и другого, одной частью моска занимаюсь программированием в писюках. Вы думаете в одном направлении, я - в другом. Это не повод обсирать и кидаться какашками.
Я съел не одну собаку. предварительно набив себе шишек. И таких обидчивых - повидал.
Цитата(zltigo @ Apr 8 2010, 19:46) *
Вот именно по этой причине и 0x40, а не 40(dec) у обоих.

Поскольку 40(dec) < 0x40 то можно с равным успехом предположить, что keil'овский LCD контроллер программировали (если оно унутре программируется) или разводили браться по разуму keil'овских программеров, написавших 40(dec) вместо x40.

ЗЫ:написал кейлу по этим двум случаям, не знаю - ответют или нет.

Сообщение отредактировал evgen2 - Apr 8 2010, 15:57
Go to the top of the page
 
+Quote Post
evgen2
сообщение Apr 12 2010, 13:17
Сообщение #26


Местный
***

Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688



Цитата(evgen2 @ Apr 8 2010, 19:09) *
ЗЫ:написал кейлу по этим двум случаям, не знаю - ответют или нет.

Кейл ответил.

####################################
NXP has updated the manuals and from LPC23xx User Manual Rev3 the 15-bit Clock Tick Counter is located in CTCR[15:1] while before it was documented that it is located in CTCR[14:0].
####################################

So the simulation will be updated accordingly and will then behave like hardware from the next version on.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 12 2010, 14:45
Сообщение #27


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Поздравляюsmile.gif
Вы доказали, что zltigo круче кейла biggrin.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 02:24
Рейтинг@Mail.ru


Страница сгенерированна за 0.01519 секунд с 7
ELECTRONIX ©2004-2016