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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Sub-Second interrupt от RTC
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 - 03:31
Рейтинг@Mail.ru


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