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

 
 
> Скорость ног SAM7, проблема с выводом
Iezuit
сообщение May 4 2008, 12:23
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 13-12-07
Пользователь №: 33 263



Добрый день!
На AT91S64 начал программно (т.е. сам через порт, а не через стандартные функции периферии) выводить информацию на ноги частотой ~10-15 МегаГерц но, по осциллографу, выходит не более 1. Подскаже, я чего-то не понимаю или это ошибка, связанная с мои неправильными действиями?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение May 5 2008, 12:04
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Iezuit @ May 5 2008, 15:46) *
Ну я в принципе писал, но еще раз:
Функция, которую хочется сделать побыстрее

Код
void write_d(unsigned char a)
{
AT91C_BASE_PIOA->PIO_CODR = SCREEN_WR;
AT91C_BASE_PIOA->PIO_ODSR=a<<16;
AT91C_BASE_PIOA->PIO_SODR = SCREEN_WR;
}

Эту функцию можно откомпилировать по-разному, в зависимости от уровня оптимизации.
Можно так:
Код
    ldr    r1, =AT91C_PIOA_CODR
    mov    r2, #SCREEN_WR
    str    r2, [r1]
    ldr    r1, =AT91C_PIOA_ODSR
    mov    r2, r0 lsl #16
    str    r2, [r1]
    ldr    r1, =AT91C_PIOA_SODR
    mov    r2, #SCREEN_WR
    str    r2, [r1]
    mov    pc, lr

а можно и так:
Код
    ldr    r1, =AT91C_BASE_PIOA
    mov    r2, #SCREEN_WR
    str    r2, [r1, #PIO_CODR]
    mov    r3, r0 lsl #16
    str    r3, [r1, #PIO_ODSR]
    str    r2, [r1, #PIO_SODR]
    mov    pc, lr

Нужно уточнить, что сделал компилятор в Вашем случае.

Кроме того, если хотите получить максимальное быстродействие лучше вообще отказаться от подобного типа коротких функций - очень уж большие накладные расходы при вызовах.
По-моему, правильнее было бы держать в RAM образ экрана и перебрасывать его одной максимально оптимизированной функцией.
Go to the top of the page
 
+Quote Post
Iezuit
сообщение May 5 2008, 12:24
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 16
Регистрация: 13-12-07
Пользователь №: 33 263



Большое спасибо!
Пробую...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Iezuit   Скорость ног SAM7   May 4 2008, 12:23
- - bureau   Приведите листинг своего кода, если вас не затрудн...   May 4 2008, 12:45
- - aaarrr   Цитата(Iezuit @ May 4 2008, 16:23) На AT9...   May 4 2008, 14:49
- - Iezuit   Ниже привожу код (IAR). Прошу прощения, что не сде...   May 5 2008, 08:00
|- - amw   Цитата(Iezuit @ May 5 2008, 11:00) Кодwhi...   May 5 2008, 09:56
|- - Iezuit   Цитата(amw @ May 5 2008, 13:56) Посчитайт...   May 5 2008, 10:59
- - aaarrr   А оптимизация-то включена?   May 5 2008, 09:04
|- - Iezuit   Цитата(aaarrr @ May 5 2008, 13:04) А опти...   May 5 2008, 09:25
|- - bureau   2 Iezuit Неправильно понимаешь. Ты сравни с и без,...   May 5 2008, 09:36
|- - Iezuit   Цитата(bureau @ May 5 2008, 13:36) 2 Iezu...   May 5 2008, 09:44
|- - KAlex   Цитата(Iezuit @ May 5 2008, 12:44) У меня...   May 5 2008, 11:10
|- - Iezuit   Цитата(KAlex @ May 5 2008, 15:10) Это как...   May 5 2008, 11:14
|- - KAlex   Здесь все давно разжевано.   May 5 2008, 11:20
- - vet   простое дергание ноги должно выливаться в гораздо ...   May 5 2008, 11:21
- - aaarrr   Ну, amw написал уж очень страшный вариант. На деле...   May 5 2008, 11:31
|- - amw   Цитата(aaarrr @ May 5 2008, 14:31) Ну, am...   May 5 2008, 11:59
- - Iezuit   Простое - да, но у меня между дерганьями было еще ...   May 5 2008, 11:37
|- - aaarrr   Цитата(Iezuit @ May 5 2008, 15:33) Просто...   May 5 2008, 11:39
|- - Iezuit   Цитата(aaarrr @ May 5 2008, 15:39) Для на...   May 5 2008, 11:46


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

 


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


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