|
Sub-Second interrupt от RTC |
|
|
|
Apr 8 2010, 07:39
|

Гуру
     
Группа: Свой
Сообщений: 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 - некошерно, но допустимо Ваши упражнения в программировании навевают тоску  . Если-бы Вы банально взяли два unsigned short, и вычитали их друг из друга без всяких дополнительных телодвижений, то получили-бы искомую разницу всегда правильную, а не иногда. Арифметика, однако.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 8 2010, 07:48
|
Местный
  
Группа: Участник
Сообщений: 236
Регистрация: 1-04-06
Пользователь №: 15 688

|
Цитата(zltigo @ Apr 8 2010, 11:54)  Естественно особо не изменится. Продолжайте читать документацию.
Вы обладаете сокровенными знаниями о том, когда и в течении какого времени CTCR изменяется? Нет? Тогда, особенно, если чеог-то там не получается ВСЕ фантазии оставьте при себе.
А на сайте средней школы номер 1 города задрищенска лежит ревизия 0. Ну и что? Поскольку вы не желаете предъявлять свой супер-пупер правильный и великий код в нескольких строчках - остается констатировать, что " оппонент слил". Указать в форуме в "помощь начинающему" на конкретную (а не формальную) ошибку в коде вы не желаете, объяснить почему указанный код в эмуляторе исполняется согласно документации, а на реальном железе иначе (изменение значения счетчика между прерывниями отличается в 2 раза от документации в то время как время между прерываниями соответствует) - не можете, но строите из себя...
|
|
|
|
|
Apr 8 2010, 08:45
|

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

|
Цитата(evgen2 @ Apr 8 2010, 10:03)  Указать в форуме в "помощь начинающему" на.... Простите, но в раздел для начинающих перенес эту тему я. Посему и отношусь к этому посту, как заявлению на якобы найденную ошибку. Цитата ...не можете, но строите из себя... Вы бы лучше свои возможности трезвее оценивали  Цитата(evgen2 @ Apr 8 2010, 10:03)  Поскольку вы не желаете предъявлять свой супер-пупер правильный и великий код в нескольких строчках - остается констатировать, что "оппонент слил". Очень пафосно  . Это Ваш обработчик прерывания Код __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
|
|
|
|
|
Apr 8 2010, 09:25
|
Местный
  
Группа: Участник
Сообщений: 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)  Очень пафосно  Документацию не читаем, Кусок документации я вам предъявил из 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
|
|
|
|
|
Apr 8 2010, 10:23
|

Гуру
     
Группа: Свой
Сообщений: 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'овском симуляторе Разбежался  Никогда не марался дубовыми симуляторами железа по причине полной нахренненужности и впредь не буду. Я умею читать документацию, умею обдумывать прочитанное опираясь на опыт, умею обращаться в службу поддержки, умею искать в интернете, знаю за какой конец надо держать паяльник и умею провести лабораторную работу, и могу написать несколько десятков строчек сразу без ошибок. Зачем мне тянуть к себе ошибки бангалорских студентов и писателей симуляторов? Еще могу дать совет и намек. Только тем, кто считает так http://electronix.ru/forum/index.php?showtopic=74649&hl= эти советы скорее всего не помогут  Цитата(evgen2 @ Apr 8 2010, 11:40)  Вместо того, чтоб сказать, что тут ошибка и надо читать v3, вы начали воспитывать. Не зарывайтесь, я понятия не имею, о чем написано в некой V1 и какие там ошибки и тем более что Вы ее читаете. С осени прошлого года на сайте производителя лежит документация, полное название которой я Вам дал в посте #13, которую Вы НЕ читаете. Так прочитайте и не морочьте людям голову.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Apr 8 2010, 11:25
|
Местный
  
Группа: Участник
Сообщений: 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)  Разбежался  Никогда не марался дубовыми симуляторами железа по причине полной нахренненужности и впредь не буду. Я умею читать документацию, умею обдумывать прочитанное опираясь на опыт, умею обращаться в службу поддержки, умею искать в интернете, знаю за какой конец надо держать паяльник и умею провести лабораторную работу, и могу написать несколько десятков строчек сразу без ошибок. Зачем мне тянуть к себе ошибки бангалорских студентов и писателей симуляторов? Т.е. сообщение о ошибке в симуляторе (чего я по факту нашел) - это не есть тема для обсуждения в форуме по ARM, потому што "правильные пацаны" никогда не пользуют симулятор ? Цитата(zltigo @ Apr 8 2010, 13:38)  Еще могу дать совет и намек. Только тем, кто считает так http://electronix.ru/forum/index.php?showtopic=74649&hl= эти советы скорее всего не помогут  Простите, как вы там себя повели - тоже характеризует вас как последнего (бип! самоцензура). Во всех кейловских примерах для всех кейловских плат стоит 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, но исправлять было лень  Так я на разрядность и обратил внимание. А что он, сволочь, оказался сдвинут на 1 бит по сравнению с v1 документации - не обратил.
Сообщение отредактировал evgen2 - Apr 8 2010, 11:32
|
|
|
|
|
Apr 8 2010, 13:20
|

Гуру
     
Группа: Свой
Сообщений: 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
|
|
|
|
|
Apr 8 2010, 15:54
|
Местный
  
Группа: Участник
Сообщений: 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
|
|
|
|
|
Apr 12 2010, 13:17
|
Местный
  
Группа: Участник
Сообщений: 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.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|