|
Какую максимальную частоту можно считать с портов контроллера?, LPC2478 |
|
|
|
 |
Ответов
|
Apr 19 2011, 10:56
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
QUOTE Сделал, по Вашему совету. Разве я вам такое насоветовал? Вот причесанный и компилирующийся код: CODE #define VIDEOPORT FIOPIN
__ramfunc unsigned int GetScanLine(unsigned char *dest, unsigned long volatile *port) { unsigned int v; unsigned char *d=dest; while((*port)&(1<<9)); //Ждем начала строки do { while(!((v=*port)&(1<<8))); //Ждем пикселя *d++=v; //Сохраняем while((v=*port)&(1<<8)); //Ждем конца строба пикселя, оптимальнее заменить на просто достаточную задержку } while(!(v&(1<<9))); //Пока не закончилась строка return d-dest; }
extern void PrintPixCount(unsigned int); extern unsigned char BmpBuff[];
void CameraTest(void) { unsigned int PixelCount; __disable_interrupt(); while(1) { while(!(VIDEOPORT&(1<<9))); //А вдруг начало в середине строки PixelCount=GetScanLine(BmpBuff,&VIDEOPORT); PrintPixCount(PixelCount); } } Листинг: CODE 187 #define VIDEOPORT FIOPIN 188
\ In section .textrw, align 4, keep-with-next 189 __ramfunc unsigned int GetScanLine(unsigned char *dest, unsigned long volatile *port) 190 { 191 unsigned int v; 192 unsigned char *d=dest; \ GetScanLine: \ 00000000 0020A0E1 MOV R2,R0 193 while((*port)&(1<<9)); //Ждем начала строки \ ??GetScanLine_0: \ 00000004 003091E5 LDR R3,[R1, #+0] \ 00000008 800F13E3 TST R3,#0x200 \ 0000000C FCFFFF1A BNE ??GetScanLine_0 194 do 195 { 196 while(!((v=*port)&(1<<8))); //Ждем пикселя \ ??GetScanLine_1: \ 00000010 003091E5 LDR R3,[R1, #+0] \ 00000014 400F13E3 TST R3,#0x100 \ 00000018 FCFFFF0A BEQ ??GetScanLine_1 197 *d++=v; //Сохраняем \ 0000001C 0130C2E4 STRB R3,[R2], #+1 198 while((v=*port)&(1<<8)); //Ждем конца строба пикселя, оптимальнее заменить на просто достаточную задержку \ ??GetScanLine_2: \ 00000020 003091E5 LDR R3,[R1, #+0] \ 00000024 400F13E3 TST R3,#0x100 \ 00000028 FCFFFF1A BNE ??GetScanLine_2 199 } 200 while(!(v&(1<<9))); //Пока не закончилась строка \ 0000002C 800F13E3 TST R3,#0x200 \ 00000030 F6FFFF0A BEQ ??GetScanLine_1 201 return d-dest; \ 00000034 000042E0 SUB R0,R2,R0 \ 00000038 1EFF2FE1 BX LR ;; return 202 } 203 204 extern void PrintPixCount(unsigned int); 205 extern unsigned char BmpBuff[]; 206
\ In section .text, align 4, keep-with-next 207 void CameraTest(void) 208 { \ CameraTest: \ 00000000 30402DE9 PUSH {R4,R5,LR} \ 00000004 04D04DE2 SUB SP,SP,#+4 209 unsigned int PixelCount; 210 __disable_interrupt(); \ 00000008 00000FE1 MRS R0,CPSR \ 0000000C C00080E3 ORR R0,R0,#0xC0 \ 00000010 00F021E1 MSR CPSR_c,R0 \ 00000014 24509FE5 LDR R5,??CameraTest_0 ;; BmpBuff \ 00000018 AF41E0E3 MVN R4,#-1073741781 \ 0000001C FF4DC4E3 BIC R4,R4,#0x3FC0 211 while(1) 212 { 213 while(!(VIDEOPORT&(1<<9))); //А вдруг начало в середине строки \ ??CameraTest_1: \ 00000020 000094E5 LDR R0,[R4, #+0] \ 00000024 800F10E3 TST R0,#0x200 \ 00000028 FCFFFF0A BEQ ??CameraTest_1 214 PixelCount=GetScanLine(BmpBuff,&VIDEOPORT); \ 0000002C 0410A0E1 MOV R1,R4 \ 00000030 0500A0E1 MOV R0,R5 \ 00000034 ........ BL GetScanLine 215 PrintPixCount(PixelCount); \ 00000038 ........ BL PrintPixCount \ 0000003C F7FFFFEA B ??CameraTest_1 \ ??CameraTest_0: \ 00000040 ........ DC32 BmpBuff \ 00000044 REQUIRE _A_FIOPIN 216 } 217 }
Но оптимально еще заменить вторую проверку на задержку. Какие точно у Вас параметры строба пикселей? Длительность 1 и длительность нуля огласите пожалуйста.
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
Сообщений в этой теме
Prinz Какую максимальную частоту можно считать с портов контроллера? Apr 15 2011, 11:24 scifi Для точного захвата внешних сигналов следует испол... Apr 15 2011, 11:30 Prinz Цитата(scifi @ Apr 15 2011, 17:30) Для то... Apr 15 2011, 11:37  kovigor Цитата(Prinz @ Apr 15 2011, 14:37) И как ... Apr 15 2011, 12:02   Prinz Цитата(kovigor @ Apr 15 2011, 18:02) Боюс... Apr 18 2011, 05:33 Rst7 Строб заводите на ножку прерывания. Режим для этог... Apr 16 2011, 15:12 Prinz Был бы рад краткому курсу по asm LPC )
Кодvoid Ca... Apr 18 2011, 07:36 kovigor Цитата(Prinz @ Apr 18 2011, 10:36) Вот эт... Apr 18 2011, 07:52  Prinz Цитата(kovigor @ Apr 18 2011, 13:52) А вы... Apr 18 2011, 08:04   kovigor Цитата(Prinz @ Apr 18 2011, 11:04) Может ... Apr 18 2011, 08:17    Prinz Цитата(kovigor @ Apr 18 2011, 14:17) А вы... Apr 18 2011, 08:35     Слесарь Цитата(Prinz @ Apr 18 2011, 12:35) Мне на... Apr 18 2011, 08:36      Prinz Цитата(Слесарь @ Apr 18 2011, 14:36) Тогд... Apr 18 2011, 08:46       scifi Цитата(Prinz @ Apr 18 2011, 12:46) Я не в... Apr 18 2011, 11:16        ViKo Цитата(scifi @ Apr 18 2011, 14:16) Лучше ... Apr 18 2011, 11:33         Prinz Цитата(ViKo @ Apr 18 2011, 17:33) Наверно... Apr 18 2011, 11:38          ViKo Цитата(Prinz @ Apr 18 2011, 14:38) А како... Apr 18 2011, 11:59 Слесарь Я при тактовой частоте 24 мГц PIC контроллера, уст... Apr 18 2011, 08:18 Слесарь проблема может статься в задержке распространения ... Apr 18 2011, 08:58 Prinz Цитата(Слесарь @ Apr 18 2011, 14:58) проб... Apr 18 2011, 09:10 Слесарь У тебя есть осцилограф
Если бы у меня был осц... Apr 18 2011, 09:21 Prinz Цитата(Слесарь @ Apr 18 2011, 15:21) У те... Apr 18 2011, 09:28  Слесарь Цитата(Prinz @ Apr 18 2011, 13:28) Я так ... Apr 18 2011, 09:47   Prinz Цитата(Слесарь @ Apr 18 2011, 15:47) Мало... Apr 18 2011, 09:53 ViKo Цитата(Слесарь @ Apr 18 2011, 12:21) Если... Apr 18 2011, 11:07  Prinz Цитата(ViKo @ Apr 18 2011, 17:07) У меня ... Apr 18 2011, 11:12 Prinz Коллеги, кто ещё что посоветует?
Прерывание счиате... Apr 18 2011, 10:58 Rst7 Во-первых, я не помню, но посмотрите, есть ли в Ва... Apr 18 2011, 12:10 Prinz Цитата(Rst7 @ Apr 18 2011, 18:10) Во-перв... Apr 19 2011, 07:39 Prinz Кодvoid CameraTest(BYTE *BmpBuff)
92 {... Apr 19 2011, 09:51 Prinz Цитата(Rst7 @ Apr 19 2011, 16:56) Разве я... Apr 19 2011, 11:21 Rst7 QUOTE Я его пробовал, он почему-то хуже работает.
... Apr 19 2011, 11:26 Prinz Цитата(Rst7 @ Apr 19 2011, 17:26) Покажит... Apr 19 2011, 12:04 Rst7 QUOTE Я бы не писал это ересь, если бы она не рабо... Apr 19 2011, 12:57 Prinz Цитата(Rst7 @ Apr 19 2011, 18:57) Ага, то... Apr 20 2011, 04:57 Rst7 Вы бы все-таки огласили параметры тактового сигнал... Apr 20 2011, 07:58 Prinz Цитата(Rst7 @ Apr 20 2011, 13:58) Вы бы в... Apr 20 2011, 08:48 Rst7 QUOTE Ну только ради Вас:
Это я и так понимаю. А ... Apr 20 2011, 10:25 Prinz Цитата(Rst7 @ Apr 20 2011, 16:25) Это я и... Apr 20 2011, 10:50 Flexz А обязательно по PCLK синхронизироваться каждый ра... Apr 20 2011, 11:23 Prinz Цитата(Flexz @ Apr 20 2011, 17:23) А обяз... Apr 20 2011, 12:07 Rst7 QUOTE он же стабильный и кратный частоте проца.
Э... Apr 20 2011, 12:27 Prinz Цитата(Rst7 @ Apr 20 2011, 18:27) .
1) Ч... Apr 21 2011, 05:57 Rst7 QUOTE 1) Что-то мой иар не знает __delay_cycles дл... Apr 21 2011, 08:09 Prinz Накатал кодик:
Код__ramfunc unsigned int GetScanL... Apr 21 2011, 08:46 Rst7 QUOTE Оцените, пожалуйста.
Ересь какая-то. У Вас ... Apr 21 2011, 10:09 Prinz Цитата(Rst7 @ Apr 21 2011, 16:09) Ересь к... Apr 21 2011, 10:12 Rst7 QUOTE А что нельзя, в начале один раз затактироват... Apr 21 2011, 10:15 Prinz Цитата(Rst7 @ Apr 21 2011, 16:15) Нельзя,... Apr 21 2011, 11:27 Rst7 QUOTE Это должно быть так!?
Уберите вот эти _... Apr 21 2011, 11:53 Prinz Цитата(Rst7 @ Apr 21 2011, 17:53) Уберите... Apr 22 2011, 04:58 Rst7 QUOTE Что нет так?
Ну надо точно засинхронизирова... Apr 22 2011, 06:44 Prinz Цитата(Rst7 @ Apr 22 2011, 12:44) Ну надо... Apr 22 2011, 08:28 Rst7 QUOTE 1,125 MHz Поднимает на ура и железно.
Это е... Apr 22 2011, 08:50 Prinz Цитата(Rst7 @ Apr 22 2011, 14:50) Это еще... Apr 22 2011, 08:58 Rst7 QUOTE 6 всё равно маловато, надо 9 )
Вы бы опреде... Apr 22 2011, 09:11 Prinz Цитата(Rst7 @ Apr 22 2011, 15:11) Вы бы о... Apr 22 2011, 09:34 Rst7 QUOTE 4.5 это нормальный результат. В идеале надо ... Apr 22 2011, 09:53 Prinz Цитата(Rst7 @ Apr 22 2011, 15:53) Можно и... Apr 22 2011, 10:12 Rst7 QUOTE Тоесть его писать самому? Его нет в библиоте... Apr 22 2011, 10:26 Prinz Цитата(Rst7 @ Apr 22 2011, 16:26) Посмотр... Apr 22 2011, 10:32
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|