Fin Tp ASM Partie 2, début Partie Son
This commit is contained in:
		
							parent
							
								
									0a548933bc
								
							
						
					
					
						commit
						4550b7bcf7
					
				
					 5 changed files with 112 additions and 29 deletions
				
			
		|  | @ -14,9 +14,11 @@ | |||
| FlagCligno	dcd 0 | ||||
| 	EXPORT FlagCligno | ||||
| ; ===============================================================================================
 | ||||
| 		 | ||||
| ;Exportation de la fonction timer_callback()
 | ||||
| 	EXPORT timer_callback | ||||
| 
 | ||||
| 	 | ||||
| 
 | ||||
| 
 | ||||
| 		 | ||||
| ;Section ROM code (read only) :		
 | ||||
| 	area    moncode,code,readonly | ||||
|  | @ -24,32 +26,29 @@ FlagCligno	dcd 0 | |||
| 
 | ||||
| timer_callback proc | ||||
| 		 | ||||
| 		ldr r0, =FlagCligno ; on affecte à r0 l'adresse de FlagCligno
 | ||||
| 		ldr r1, [r0] ; on affecte à r1 la valeur contenu dans r0 (pointeur) 
 | ||||
| 		push{r0} | ||||
| 		push{lr} | ||||
| 		 | ||||
| 		ldr r1, =FlagCligno ; on affecte à r1 l'adresse de FlagCligno (r1 = pointeur sur FlagCligno)
 | ||||
| 		ldr r2, [r1] ; on affecte à r2 la valeur contenu dans r1 
 | ||||
| 
 | ||||
| SI | ||||
| 		cmp r1, #0 ; si r1 = 0
 | ||||
| 		cmp r2, #0 ; si Flag = 0
 | ||||
| 		bne SINON | ||||
| 		 | ||||
| ALORS ; on passe r1 à 0 + on allume B1
 | ||||
| 		mov r1, #0 | ||||
| ALORS ; on passe Flag à 1 + on allume B1
 | ||||
| 		mov r2, #1 | ||||
| 		mov r0, #1  ; sert juste à passer 1 en argument à GPIOB_Set
 | ||||
| 		bl GPIOB_Set | ||||
| 		bl FINSI | ||||
| 		b FINSI | ||||
| 			 | ||||
| SINON ; sinon on passe r1 à 1 + on éteint B1
 | ||||
| 		mov r1, #1 | ||||
| 		mov r2, #1 | ||||
| SINON ; sinon on passe Flag à 0 + on éteint B1
 | ||||
| 		mov r2, #0 | ||||
| 		mov r0, #1  ; sert juste à passer 1 en argument à GPIOB_Set
 | ||||
| 		bl GPIOB_Clear | ||||
| FINSI | ||||
| 		str r1, [r0] ; on stocke la nouvelle valeur de r1 dans r0 (on met à jour FlagCligno)
 | ||||
| 		ldr r1, =FlagCligno | ||||
| 		str r2, [r1] ; on stocke la nouvelle valeur de r2 dans r1 (on met à jour FlagCligno)
 | ||||
| 		 | ||||
| 		pop {PC} | ||||
| 		endp | ||||
| 		 | ||||
| 
 | ||||
| 
 | ||||
| 		 | ||||
| 		 | ||||
| 	END	 | ||||
|  | @ -18,6 +18,9 @@ CLOCK_Configure(); | |||
| 	 | ||||
| Timer_1234_Init_ff(TIM4, 7200000); //7 200 000 équivalent à 100ms
 | ||||
| 	 | ||||
| //Récupération de la fonction timer_callback() codée en ASM
 | ||||
| 	extern void timer_callback(); | ||||
| 	 | ||||
| 	 | ||||
| 	 | ||||
| // Activation des interruptions issues du Timer 4
 | ||||
|  | @ -38,6 +41,7 @@ GPIO_Configure(GPIOB, 1, OUTPUT, OUTPUT_PPULL); | |||
| 	 | ||||
| while	(1) | ||||
| 	{ | ||||
| 
 | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -10,10 +10,20 @@ | |||
| ;Section RAM (read write):
 | ||||
| 	area    maram,data,readwrite | ||||
| 		 | ||||
| FlagSon	dcb 0 | ||||
| 	EXPORT FlagSon | ||||
| 
 | ||||
| 	 | ||||
| SortieSon dcw 0 | ||||
| 	EXPORT SortieSon | ||||
| 		 | ||||
| Index dcw 0 | ||||
| 	EXPORT Index | ||||
| 
 | ||||
| ;LDRD{cond} Rt, Rt2, [Rn, ±Rm] ; register offset, doubleword ; ARM only <-- INSTRUCTION A UTILISER
 | ||||
| ; ===============================================================================================
 | ||||
| 	 | ||||
| ;Exportation de la fonction callbackson()
 | ||||
| 	EXPORT callbackson | ||||
| 
 | ||||
| 
 | ||||
| 		 | ||||
|  | @ -22,8 +32,29 @@ | |||
| ; écrire le code ici		
 | ||||
| 
 | ||||
| 
 | ||||
| callbackson proc | ||||
| 		 | ||||
| 		push{lr} | ||||
| 		ldr r1, =FlagSon ; on affecte à r1 l'adresse de FlagSon (r1 = pointeur sur FlagSon)
 | ||||
| 		ldr r2, [r1] ; on affecte à r2 la valeur contenu dans r1 
 | ||||
| 
 | ||||
| SI | ||||
| 		cmp r2, #0 ; si Flag = 0
 | ||||
| 		bne SINON | ||||
| 		 | ||||
| ALORS ; on passe Flag à 1 + on allume B1
 | ||||
| 		mov r2, #1 | ||||
| 		b FINSI | ||||
| 			 | ||||
| SINON ; sinon on passe Flag à 0 + on éteint B1
 | ||||
| 		mov r2, #0 | ||||
| 
 | ||||
| FINSI | ||||
| 		ldr r1, =FlagSon | ||||
| 		str r2, [r1] ; on stocke la nouvelle valeur de r2 dans r1 (on met à jour FlagSon)
 | ||||
| 		 | ||||
| 		pop {PC} | ||||
| 		endp | ||||
| 
 | ||||
| 		 | ||||
| 		 | ||||
|  |  | |||
|  | @ -14,13 +14,22 @@ int main(void) | |||
| // Après exécution : le coeur CPU est clocké à 72MHz ainsi que tous les timers
 | ||||
| CLOCK_Configure(); | ||||
| 
 | ||||
| 
 | ||||
| // configuration du Timer 4 en débordement 91µs
 | ||||
| Timer_1234_Init_ff(TIM4, 6552); //6552 équivalent à 91µs
 | ||||
| 	 | ||||
| //Récupération de la fonction timer_callback() codée en ASM
 | ||||
| 	extern void callbackson(); | ||||
| 	 | ||||
| 	 | ||||
| 	 | ||||
| // Activation des interruptions issues du Timer 4
 | ||||
| // Association de la fonction à exécuter lors de l'interruption : timer_callback
 | ||||
| // cette fonction (si écrite en ASM) doit être conforme à l'AAPCS
 | ||||
| 	 | ||||
| Active_IT_Debordement_Timer(TIM4, 2, callbackson); 	 | ||||
| 
 | ||||
| //============================================================================	
 | ||||
| 	 | ||||
| 	 | ||||
| while	(1) | ||||
| 	{ | ||||
| 	} | ||||
|  |  | |||
|  | @ -10,7 +10,7 @@ | |||
|       <TargetName>Simu</TargetName> | ||||
|       <ToolsetNumber>0x4</ToolsetNumber> | ||||
|       <ToolsetName>ARM-ADS</ToolsetName> | ||||
|       <pCCUsed>5060750::V5.06 update 6 (build 750)::.\ARMCC</pCCUsed> | ||||
|       <pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed> | ||||
|       <uAC6>0</uAC6> | ||||
|       <TargetOption> | ||||
|         <TargetCommonOption> | ||||
|  | @ -410,6 +410,21 @@ | |||
|             </File> | ||||
|           </Files> | ||||
|         </Group> | ||||
|         <Group> | ||||
|           <GroupName>Son</GroupName> | ||||
|           <Files> | ||||
|             <File> | ||||
|               <FileName>bruitverre.asm</FileName> | ||||
|               <FileType>2</FileType> | ||||
|               <FilePath>.\Src\bruitverre.asm</FilePath> | ||||
|             </File> | ||||
|             <File> | ||||
|               <FileName>GestionSon.s</FileName> | ||||
|               <FileType>2</FileType> | ||||
|               <FilePath>.\Src\GestionSon.s</FilePath> | ||||
|             </File> | ||||
|           </Files> | ||||
|         </Group> | ||||
|         <Group> | ||||
|           <GroupName>::CMSIS</GroupName> | ||||
|         </Group> | ||||
|  | @ -819,6 +834,21 @@ | |||
|             </File> | ||||
|           </Files> | ||||
|         </Group> | ||||
|         <Group> | ||||
|           <GroupName>Son</GroupName> | ||||
|           <Files> | ||||
|             <File> | ||||
|               <FileName>bruitverre.asm</FileName> | ||||
|               <FileType>2</FileType> | ||||
|               <FilePath>.\Src\bruitverre.asm</FilePath> | ||||
|             </File> | ||||
|             <File> | ||||
|               <FileName>GestionSon.s</FileName> | ||||
|               <FileType>2</FileType> | ||||
|               <FilePath>.\Src\GestionSon.s</FilePath> | ||||
|             </File> | ||||
|           </Files> | ||||
|         </Group> | ||||
|         <Group> | ||||
|           <GroupName>::CMSIS</GroupName> | ||||
|           <GroupOption> | ||||
|  | @ -897,7 +927,7 @@ | |||
|       <TargetName>CibleSondeST</TargetName> | ||||
|       <ToolsetNumber>0x4</ToolsetNumber> | ||||
|       <ToolsetName>ARM-ADS</ToolsetName> | ||||
|       <pCCUsed>5060750::V5.06 update 6 (build 750)::.\ARMCC</pCCUsed> | ||||
|       <pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed> | ||||
|       <uAC6>0</uAC6> | ||||
|       <TargetOption> | ||||
|         <TargetCommonOption> | ||||
|  | @ -1297,6 +1327,21 @@ | |||
|             </File> | ||||
|           </Files> | ||||
|         </Group> | ||||
|         <Group> | ||||
|           <GroupName>Son</GroupName> | ||||
|           <Files> | ||||
|             <File> | ||||
|               <FileName>bruitverre.asm</FileName> | ||||
|               <FileType>2</FileType> | ||||
|               <FilePath>.\Src\bruitverre.asm</FilePath> | ||||
|             </File> | ||||
|             <File> | ||||
|               <FileName>GestionSon.s</FileName> | ||||
|               <FileType>2</FileType> | ||||
|               <FilePath>.\Src\GestionSon.s</FilePath> | ||||
|             </File> | ||||
|           </Files> | ||||
|         </Group> | ||||
|         <Group> | ||||
|           <GroupName>::CMSIS</GroupName> | ||||
|         </Group> | ||||
|  | @ -1322,12 +1367,7 @@ | |||
|   <LayerInfo> | ||||
|     <Layers> | ||||
|       <Layer> | ||||
|         <LayName><Project Info></LayName> | ||||
|         <LayDesc></LayDesc> | ||||
|         <LayUrl></LayUrl> | ||||
|         <LayKeys></LayKeys> | ||||
|         <LayCat></LayCat> | ||||
|         <LayLic></LayLic> | ||||
|         <LayName>StepSon</LayName> | ||||
|         <LayTarg>0</LayTarg> | ||||
|         <LayPrjMark>1</LayPrjMark> | ||||
|       </Layer> | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue