Предлагаю обкатать в протеусе или на железе следующее изменение: (действительно только для 60-2)
ckps.c:833
//before starting the ignition it is left to count less than 2 teeth. It is necessary to prepare the compare module
//(до запуска зажигания осталось отсчитать меньше 2-x зубов. Необходимо подготовить модуль сравнения)
//TODO: replace heavy division by multiplication with magic number. This will reduce up to 40uS !
- OCR1A = GetICR() + ((uint32_t)diff * (ckps.period_curr)) / ANGLE_MAGNITUDE(CKPS_DEGREES_PER_COG);
+ OCR1A = GetICR() + (((((uint32_t)diff * (ckps.period_curr))>>8) * 0x15556)>>16);
Изучаем язык Си (Learn C language)
Moderator: STC
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Изучаем язык Си (Learn C language)
Хм. Интересно. А 0x15556 это магическое число?
Попробую проверить когда время будет. Особенно важно проверить на предельно низких оборотах.
p.s. Я раньше пробовал, но из-за появленния 64-х битного результата после умножения тоже съедались большие ресурсы.
Попробую проверить когда время будет. Особенно важно проверить на предельно низких оборотах.
p.s. Я раньше пробовал, но из-за появленния 64-х битного результата после умножения тоже съедались большие ресурсы.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
-
- LQFP144 - On Top Of The Game
- Posts: 358
- Joined: Sun Dec 12, 2010 11:55 am
- Location: украина, Горловка
Re: Изучаем язык Си (Learn C language)
STC
привет, насколько геморно вставить в прогу на ассемблере СИшный блок....
я думаю - очень, как ты скажешь?
привет, насколько геморно вставить в прогу на ассемблере СИшный блок....
я думаю - очень, как ты скажешь?
-
- LQFP144 - On Top Of The Game
- Posts: 553
- Joined: Sun Nov 06, 2011 9:20 pm
- Location: Russia, Yekaterinburg
- Contact:
Re: Изучаем язык Си (Learn C language)
Элементарно вставляется. Другое дело что ассемблерный код процессоро-зависимый, соответсвенно в дальнейшем на другом железе без полного переписыванния не перенести, поэтому без крайней необходимости не стоит делать ассемблерные вставки.
-
- LQFP144 - On Top Of The Game
- Posts: 358
- Joined: Sun Dec 12, 2010 11:55 am
- Location: украина, Горловка
Re: Изучаем язык Си (Learn C language)
прочитай внимательно вопрос, мне надо наоборот.делать ассемблерные вставки.
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Изучаем язык Си (Learn C language)
Негеморно. По краиней мере гемора столько же сколько в случае "ассемблерная вставка на СИ". В документации на компилятор нужно прочитать о принятых соглашениях (используемые регистры, порядок параметров в стеке и т.д.) и все. В документации на ИАР вроде опысаны оба варианта.
Я занимался такой фигней когда программировал на ассемблере под Windows. API ОС Windows выполнен на СИ, а мои программы были на ассемблере.
Я занимался такой фигней когда программировал на ассемблере под Windows. API ОС Windows выполнен на СИ, а мои программы были на ассемблере.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
-
- LQFP144 - On Top Of The Game
- Posts: 553
- Joined: Sun Nov 06, 2011 9:20 pm
- Location: Russia, Yekaterinburg
- Contact:
Re: Изучаем язык Си (Learn C language)
Дергать винапи из асма это не си это просто библиотечные вызовы. Основной каркас на асме с сишными вставками? Хм, ну по суте тоже самое, вот только требуется следовать стандартам компилятора (порядок передачи параметров, работа со стеком, регистры, банки). Я именно так не пробовал но не думаю что это принципиально сложно. Тут скорее вопрос о целесообразности. Если какие-то ресурсоемкие куски кода еще имеет смысл писать на асме (если пишет гуру т.к. средний кодер против компилятора только хуже сделает) то вот весь скелет программы долго и нудно набивать в столбик вместо десятка строк кода как то не интересно.
-
- LQFP144 - On Top Of The Game
- Posts: 358
- Joined: Sun Dec 12, 2010 11:55 am
- Location: украина, Горловка
Re: Изучаем язык Си (Learn C language)
подумаю, всем спасибо
Re: Изучаем язык Си (Learn C language)
Привет всем! Есть у кого нибудь русский хелп к иару? С англитским чтото не очень!
-
- LQFP112 - Up with the play
- Posts: 203
- Joined: Mon Dec 19, 2011 4:55 pm
- Location: Ukraine, Kirovograd
Re: Изучаем язык Си (Learn C language)
Для тех кто только начинает изучать Си могу посоветовать компилятор microC. Огромное его достоинство это отличный хелп на русском языке с большой библиотекой и кучей примеров. На сайте можно отдельно скачать руководство по языку Си. Мне он когда то сильно помог.