Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Sub-Second interrupt от RTC
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
evgen2
Вот в 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 не только у более старших чипов, но и у более младших ?
zltigo
Цитата(evgen2 @ Apr 6 2010, 19:52) *
1.) Сдается мне, что в доке в два раза наврано - не от 16 до 2048, а от 32 до 4096

Доказательства на бочку.
Цитата
2) А почему нет аналогов CISS не только у более старших чипов, но и у более младших ?

О чем это? Кто такие младшие, кто такие старшие? У всех 23xx и 24xx есть
evgen2
Цитата(zltigo @ Apr 6 2010, 22:09) *
Доказательства на бочку.

Считаем разницу между значениями RTC_CTC полученными в момент прерывания и предыдущего прерывания.

Цитата(zltigo @ Apr 6 2010, 22:09) *
О чем это? Кто такие младшие, кто такие старшие? У всех 23xx и 24xx есть


младшие по возрасту - 17xx, старшие - 21xx
zltigo
Цитата(evgen2 @ Apr 6 2010, 20:43) *
Считаем разницу между значениями RTC_CTC полученными в момент прерывания и предыдущего прерывания.

Тогда надо еще правильно считать, или банально взять осциллограф.
Цитата
младшие по возрасту - 17xx, старшие - 21xx

Смешно sad.gif
evgen2
Цитата(zltigo @ Apr 7 2010, 01:29) *
Тогда надо еще правильно считать, или банально взять осциллограф.


А как тут осцилограф поможет ? Секунды тикают правильно.
Я так понимаю что нужно кусок кода целиком предъявить, ибо как минимум у вас такого не наблюдается ?

Цитата(zltigo @ Apr 7 2010, 01:29) *
Смешно sad.gif


Так что делать-то с 17xx ?
evgen2
А вот и код целиком

Код
#include "LPC23xx.H"                        /* LPC23xx/24xx definitions */
#define ILR_RTCCIF    0x01
#define ILR_RTCALF    0x02
#define ILR_RTSSF    0x04
#define CCR_CLKEN    0x01
#define CCR_CTCRST    0x02
#define CCR_CLKSRC    0x10

int nclock = 0, nclocks = 0, t0=0, dt0=0;

volatile int alarm_on = 0;

__irq  void RTCHandler (void)
{  
//  RTC_ILR |= ILR_RTCCIF;        /* clear interrupt flag */
    RTC_ILR |= ILR_RTSSF;
    alarm_on = 1;
    VICVectAddr = 0;        /* Acknowledge Interrupt */
}

int stat[256];
/*****************************************************************************
**   Main Function  main()
******************************************************************************/
int main (void)
{    int i, dtmin, dtmax;
    for(i=0;i<256; i++) stat[i]=0;
    /*--- Initialize registers ---*/    
    RTC_AMR = 0;
    RTC_CIIR = 0;
    RTC_CCR = CCR_CTCRST; //Сброс
    RTC_CCR = CCR_CLKSRC; //

VICIntSelect   = 0x00000000;  
VICVectAddr13 = (unsigned) RTCHandler;
VICVectCntl13 = 0x00000013;            /* Set channel =RTC */
VICIntEnable = (1<<13);                /* Enable the interrupt */

    /*--- Start RTC counters ---*/
    RTC_CCR |= CCR_CLKEN;
    RTC_ILR = ILR_RTCCIF;
    RTC_CISS = 0x81; //subsecondes interrupt enable 0x80 = 488 мкс; 0x87 = 62.5 мс;

    t0 = RTC_CTC;
    dtmax = 0;
    dtmin = 1000000;
    while (1)
    {    /* Loop forever */
        nclocks++;
        if ( alarm_on != 0 )
        {    dt0 = RTC_CTC - t0;
            t0 = RTC_CTC;

// RTC_CISS = 0x80;
//Simulator:  dtmin = 0x20 dtmax = 0x20 RTC_CISS = 0x80;  stat[]= 0,0,0,0.....     stat[16] = много
//JTAG debug: dtmin = 0x0  dtmax = 0x20 RTC_CISS = 0x80;  stat[]= 1,0,1,0.....     stat[32] = много
// RTC_CISS = 0x81;
//Simulator: dtmin = 0x40 dtmax = 0x40 RTC_CISS = 0x80;  stat[]= 0,0,0,0.....     stat[32] = много
//JTAG debug:dtmin = 0x0  dtmax = 0x40 RTC_CISS = 0x80;  stat[]= 1,0,1,0.....     stat[64] = много
            if(dt0 >= 0)
            {  if(dt0 > dtmax) dtmax = dt0;
               if(dt0 < dtmin) dtmin = dt0;
               if(dt0<256)
                 stat[dt0]++;
            }
            alarm_on = 0;
            nclock++;
        }
    }
    return 0;
}
zltigo
Цитата(evgen2 @ Apr 7 2010, 06:37) *
А как тут осцилограф поможет ?

Поскольку для осциллографа, полагаю, софт Вы не писали, то он покажет Вам правильные интервалы smile.gif
Цитата
Я так понимаю что нужно кусок кода целиком предъявить

Только я его читать не буду - не интересно.
Цитата
ибо как минимум у вас такого не наблюдается ?

Все согласно документации.
evgen2
Цитата(zltigo @ Apr 7 2010, 14:45) *
Поскольку для осциллографа, полагаю, софт Вы не писали, то он покажет Вам правильные интервалы smile.gif

Только я его читать не буду - не интересно.

Все согласно документации.


Простите, такое впечатление, что вы не только код не читаете, но все остальное. Вопрос не про временные интервалы и не про правильные интервалы или нгеправильные, а про изсенение содержимого счетчика между прерываниями. Согласно документации оно меняется на 16, в эмуляторе меняется на 16, в железе на 16 не меняется. Объхясните идиоту, как увидеть изменение регистра процессора за время между прерываниями посредством осциллоскопа.

Все что нужно - запустить указанный код на своем процессоре И посмотреть содержимое массива. Понятно, что вам поднять жопу - лениво. "Этого не может быть, потому что не может быть никогда".
zltigo
Цитата(evgen2 @ Apr 7 2010, 17:06) *
Согласно документации оно меняется на 16....

В документации сие НЕ написано. Написано только через сколько тактов появится прерывание. Прерывание появляется через заданное число тактов часового кварца. Интервалы правильные. Никаких других обещаний не дано в принципе. Посему чего Вы там в своем традиционно sad.gif бездумно писанном коде нагородили, начитали, и насчитали меня совершенно не интересует.
Цитата
Понятно, что вам поднять жопу - лениво. "Этого не может быть, потому что не может быть никогда".

Не лениво, могут быть и ошибки. Именно по этой причине я написал своих несколько строк и проверил на 2048 тактах. Работает, как обещано. Байка не подтвердилась.
Уже сообщил об этом на форуме, дабы сплетни не растекались. Точка.
evgen2
Цитата(zltigo @ Apr 7 2010, 19:19) *
В документации сие НЕ написано. Написано только через сколько тактов появится прерывание. Прерывание появляется через заданное число тактов часового кварца. Интервалы правильные. Никаких других обещаний не дано в принципе.



4.2.5 Counter Increment Select Mask Register (CISS - 0xE002 4040)
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 Table 26–469.

Table 469. Counter Increment Select Mask register (CISS - address 0xE002 4040) bit description Bit Symbol Value Description Reset value
2:0 SubSecSel SubSecSelSub-Second Select. This field selects a count for the sub-second interrupt as NC follows:

000 An interrupt is generated on every16 counts of the Clock Tick Counter. At 32.768 kHz, this generates an interrupt approximately every 488 microseconds.
001 An interrupt is generated on every 32 counts of the Clock Tick Counter. At 32.768 kHz, this generates an interrupt approximately every 977 microseconds.
010 An interrupt is generated on every 64 counts of the Clock Tick Counter. At 32.768 kHz, this generates an interrupt approximately every 1.95 milliseconds.
011 An interrupt is generated on every 128 counts of the Clock Tick Counter. At 32.768 kHz, this generates an interrupt approximately every 3.9 milliseconds.
100 An interrupt is generated on every 256 counts of the Clock Tick Counter. At 32.768 kHz, this generates an interrupt approximately every 7.8 milliseconds.
101 An interrupt is generated on every 512 counts of the Clock Tick Counter. At 32.768 kHz, this generates an interrupt approximately every 15.6 milliseconds.
110 An interrupt is generated on every 1024 counts of the Clock Tick Counter. At 32.768 kHz, this generates an interrupt approximately every 31.25 milliseconds.
111 An interrupt is generated on every 2048 counts of the Clock Tick Counter. At 32.768 kHz, this generates an interrupt approximately every 62.5 milliseconds.

Какая буква из документации вам непонятна ?

Цитата(zltigo @ Apr 7 2010, 19:19) *
Посему чего Вы там в своем традиционно sad.gif бездумно писанном коде нагородили, начитали, и насчитали меня совершенно не интересует.

Не лениво, могут быть и ошибки. Именно по этой причине я написал своих несколько строк и проверил на 2048 тактах. Работает, как обещано. Байка не подтвердилась.
Уже сообщил об этом на форуме, дабы сплетни не растекались. Точка.


какие могут быть ошибки ? В один регистр пихается согласно уставу, из другого - читаем в момент прерывания и сравниваем с предыдущим значением. Просто как репа.

Цитата(zltigo @ Apr 7 2010, 19:19) *
я написал своих несколько строк и проверил на 2048 тактах.


Предъявить их конечно не судьба ? Чужой код обосрать не читая у вас проблем нет.
zltigo
Цитата(evgen2 @ Apr 7 2010, 20:25) *
Какая буква из документации вам непонятна ?

Мне абсолютно все. А Вам нет sad.gif - начинаете фантазировать.
Цитата
Просто как репа.

и "красиво", как анус sad.gif
Цитата
Чужой код обосрать не читая у вас проблем нет.

Отчего не читая? С первого взгляда стало ясно, что для того, что-бы понять, что "'это", "это" пробовать не надо.
А муть там в каждой строчке sad.gif, например,
Код
        t0 = RTC_CTC;

сразу три очевидных вывода:
1. Вы не знаете сколько битов в счетчике;
2. Вы не знаете, как эти биты расположены в регистре RTC_CTC;
3. Вы не знаете, что правильность считывания RTC_CTC регистра не гарантируется и надо принимать специальные меры;
Когда Вы сможете самому себе ответить на эти вопросы, можно будет идти дальше...
evgen2
Цитата(zltigo @ Apr 7 2010, 22:41) *
Мне абсолютно все. А Вам нет sad.gif - начинаете фантазировать.

и "красиво", как анус sad.gif

Отчего не читая? С первого взгляда стало ясно, что для того, что-бы понять, что "'это", "это" пробовать не надо.
А муть там в каждой строчке sad.gif, например,
Код
        t0 = RTC_CTC;

сразу три очевидных вывода:
1. Вы не знаете сколько битов в счетчике;
2. Вы не знаете, как эти биты расположены в регистре RTC_CTC;
3. Вы не знаете, что правильность считывания RTC_CTC регистра не гарантируется и надо принимать специальные меры;


Заявленный Супер-Пупер Код - в студию.
----------------
4.2.2 Clock Tick Counter Register (CTCR - 0xE002 4004)
The Clock Tick Counter is read only. It can be reset to zero through the Clock Control
Register (CCR). The CTC consists of the bits of the clock divider counter.

14:0 Clock Tick Prior to the Seconds counter, the CTC counts 32,768 clocks per NA
Counter second. Due to the RTC Prescaler, these 32,768 time increments may
not all be of the same duration. Refer to the Section 26–8.1 “Reference
Clock Divider (Prescaler)” on page 508 for details.

15 - Reserved, user software should not write ones to reserved bits. The NA
value read from a reserved bit is not defined.

Какая буква документации вам непонятна, какая буква говорит про "не гарантируется", какая буква говорит про расположение битов нестандартным способом ? .
zltigo
Цитата(evgen2 @ Apr 7 2010, 20:54) *
Заявленный Супер-Пупер Код - в студию.

Если хотите - ответы на три вопроса и пойдем дальше.
Цитата
Какая буква документации вам непонятна

Повторяю последний раз - мне ВСЕ понятно и у меня ВСЕ получаетя. Проблемы у Вас. Наводящие вопросы заданы.
Цитата
какая буква говорит про расположение битов нестандартным способом ? .

Читайте документацию LPC23XX User manual Rev. 03 — 25 August 2009 полностью и внимательно.
rezident
Цитата(evgen2 @ Apr 8 2010, 00:54) *
Какая буква документации вам непонятна, какая буква говорит про "не гарантируется", какая буква говорит про расположение битов нестандартным способом ?
zltigo, видимо имеет в виду раздел 7.2.2 из User's Manual. Я лично сразу нашел упомянутые им особенности RTC. Проблемы с чтением регисторов, имеющих асинхронное по отношению к ядру тактирование, встречаются весьма часто и у других микроконтроллеров.
evgen2
Цитата(rezident @ Apr 7 2010, 23:56) *
zltigo, видимо имеет в виду раздел 7.2.2 из User's Manual. Я лично сразу нашел упомянутые им особенности RTC. Проблемы с чтением регисторов, имеющих асинхронное по отношению к ядру тактирование, встречаются весьма часто и у других микроконтроллеров.

1. Если в указанном выше коде заменить RTC_CTC на (RTC_CTC&0x7fff) - результат не изменится.
2. В ревизии 1 указанного дополнения к описанию CTCR нет. (и вообще удивительно - ревизия 2 занимает 4Мб, ревизия 1 - 11мб), но приведенный код читает этот регистр после прерывания, поэтому у регистра CTCR нет времени еще раз измениться.

Цитата(zltigo @ Apr 7 2010, 23:36) *
Если хотите - ответы на три вопроса и пойдем дальше.

Повторяю последний раз - мне ВСЕ понятно и у меня ВСЕ получаетя. Проблемы у Вас. Наводящие вопросы заданы.

Читайте документацию LPC23XX User manual Rev. 03 — 25 August 2009 полностью и внимательно.

Хочу.
Ответы даны в ответе rezident'у.
Для тестового кода игнорирование 16/32 - некошерно, но допустимо, если все лишнее оказывается нулями. Если все сделать корректно - итоговый результат у меня не меняется. Чтение регистра после прерывания - на мой взгляд вполне корректный метод для чтения данного асинхронно медленно меняющегося регистра.
Документация Rev 1,2,3 действительно слегка отличается друг от друга. (При этом в на сайте кейла лежит rev 2)
zltigo
Цитата(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, и вычитали их друг из друга без всяких дополнительных телодвижений, то получили-бы искомую разницу всегда правильную, а не иногда. Арифметика, однако.
evgen2
Цитата(zltigo @ Apr 8 2010, 11:54) *
Естественно особо не изменится. Продолжайте читать документацию.

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

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

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

Указать в форуме в "помощь начинающему" на конкретную (а не формальную) ошибку в коде вы не желаете, объяснить почему указанный код в эмуляторе исполняется согласно документации, а на реальном железе иначе (изменение значения счетчика между прерывниями отличается в 2 раза от документации в то время как время между прерываниями соответствует) - не можете, но строите из себя...
AHTOXA
Цитата(evgen2 @ Apr 8 2010, 14:03) *
...

Я не понимаю о чём вы тут, но судя по картинке от rezident-а, надо читать не RTC_CTC, и не RTC_CTC&0x7fff, а RTC_CTC >> 1, т.к там биты 15..1.
Возможно эмулятор работает по предыдущей, ошибочной версии документации.
zltigo
Цитата(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 всегда.
evgen2
Цитата(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'овском симуляторе
zltigo
Цитата(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, которую Вы НЕ читаете. Так прочитайте и не морочьте людям голову.
rezident
Цитата(evgen2 @ Apr 8 2010, 15:40) *
Я на предъявленной картинке умудрился увидеть только подпись красным фломастером про 16 бит.
Дык я в пайнте подписал "16 бит", имея в виду, разрядность регистра, а не выделенного диапазона. Уже после создания сообщения подумал, что кто-то может привязаться, что я выделил 15 бит, а не 16, но исправлять было лень smile.gif
evgen2
Цитата(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 документации - не обратил.
zltigo
Цитата(evgen2 @ Apr 8 2010, 13:40) *
Или там тоже "неведомые писатели" пишут ?

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

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

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

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

После чего, и до сего момента Вы пытаетесь глупо выкручиваться и флеймить.
Достаточно.
evgen2
Цитата(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
Цитата(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.
AHTOXA
Поздравляюsmile.gif
Вы доказали, что zltigo круче кейла biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.