<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>IngArless's Activities</title><link>https://community.arm.com/members/ingarless</link><description>IngArless's recent activity</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>I need blink my led in &amp;quot;distress signal&amp;quot; Urgent please</title><link>https://community.arm.com/developer/tools-software/tools/f/arm-compilers-forum/47946/i-need-blink-my-led-in-distress-signal-urgent-please</link><pubDate>Sat, 31 Oct 2020 01:50:52 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:ca5809a9-ad8b-4376-9746-562f3b614cfb</guid><dc:creator>IngArless</dc:creator><description>&lt;p&gt;I have a Nucleo-32 STM 432, ARM Cortex M4 and my teacher asked us for a program in which the pin turns on and off simulating a &amp;quot;distress signal&amp;quot; (SOS) in Morse code (&lt;span style="color:#0000ff;"&gt;... _ _ _...&lt;/span&gt;). This is my program, but I don&amp;#39;t know how to configure it so that my led blinks in this way. I hope you can help me.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;;*******************************************************************************&lt;/p&gt;
&lt;p&gt;DELAY_INTERVAL EQU 0x124F80&lt;br /&gt;;**************************&lt;/p&gt;
&lt;p&gt;;STM32L43xxx reference manual RM0394, p.64&lt;br /&gt;RCC_AHB2ENR EQU 0x4002104C ;Clock control for AHB2 p.214-215&lt;/p&gt;
&lt;p&gt;;GPIO-B control registers&lt;br /&gt;GPIOB_MODER EQU 0x48000400 ;set GPIO pin mode as Input/Output/Analog&lt;br /&gt;GPIOB_OTYPER EQU 0x48000404 ;Set GPIO pin type as push-pull or open drain&lt;br /&gt;GPIOB_OSPEEDR EQU 0x48000408 ;Set GPIO pin switching speed&lt;br /&gt;GPIOB_PUPDR EQU 0x4800040C ;Set GPIO pin pull-up/pull-down&lt;br /&gt;GPIOB_ODR EQU 0x48000414 ;GPIO pin output data&lt;br /&gt;;***************************&lt;/p&gt;
&lt;p&gt;AREA MyCodigo, CODE, READONLY&lt;br /&gt; ENTRY ; Mark first instruction to execute&lt;br /&gt; EXPORT __main&lt;br /&gt; &lt;br /&gt;__main&lt;br /&gt; ; Enable GPIO clock&lt;br /&gt; LDR R1, =RCC_AHB2ENR ;Pseudo-load address in R1&lt;br /&gt; LDR R0, [R1] ;Copy contents at address in R1 to R0&lt;br /&gt; ORR R0, #0x00000002 ;Bitwise OR entire word in R0, result in R0&lt;br /&gt; STR R0, [R1] ;Store R0 contents to address in R1&lt;/p&gt;
&lt;p&gt;; Set mode as output p.263&lt;br /&gt; LDR R1, =GPIOB_MODER ;Two bits per pin so bits 0 to 3 control pins 0 to 3&lt;br /&gt; LDR R0, [R1] &lt;br /&gt; ORR R0, #0x00000055 ;Mode bits set to &amp;#39;01&amp;#39; makes the pin mode as output&lt;br /&gt; AND R0, #0xFFFFFF55 ;OR and AND both operations for 2 bits&lt;br /&gt; STR R0, [R1]&lt;/p&gt;
&lt;p&gt;; Set type as push-pull (Default)&lt;br /&gt; LDR R1, =GPIOB_OTYPER ;Type bit &amp;#39;0&amp;#39; configures pin for push-pull &lt;br /&gt; LDR R0, [R1]&lt;br /&gt; AND R0, #0xFFFFFFF0 &lt;br /&gt; STR R0, [R1]&lt;br /&gt; &lt;br /&gt; ; Set Speed slow&lt;br /&gt; LDR R1, =GPIOB_OSPEEDR ;Two bits per pin so bits 0 to 3 control pins 0 to 3&lt;br /&gt; LDR R0, [R1]&lt;br /&gt; AND R0, #0xFFFFFF10 ;Speed bits set to &amp;#39;00&amp;#39; configures pin for slow speed &lt;br /&gt; STR R0, [R1] &lt;br /&gt; &lt;br /&gt; ; Set pull-up&lt;br /&gt; LDR R1, =GPIOB_PUPDR ;Two bits per pin so bits 0 to 3 control pins 0 to 3&lt;br /&gt; LDR R0, [R1]&lt;br /&gt; AND R0, #0xFFFFFF10 ;Clear bits to disable pullup/pulldown &lt;br /&gt; STR R0, [R1]&lt;br /&gt;;***************************&lt;br /&gt;turnON&lt;br /&gt; ; Set output high&lt;br /&gt; LDR R1, =GPIOB_ODR&lt;br /&gt; LDR R0, [R1]&lt;br /&gt; ORR R0, #0x0000000F&lt;br /&gt; STR R0, [R1]&lt;br /&gt; BL delay ; Call subroutine delay &lt;br /&gt;turnOFF&lt;br /&gt; ; Set output low&lt;br /&gt; LDR R1, =GPIOB_ODR&lt;br /&gt; LDR R0, [R1]&lt;br /&gt; AND R0, #0xFFFFFFF0&lt;br /&gt; STR R0, [R1] &lt;br /&gt; BL delay ; Call subroutine delay &lt;br /&gt; ; loop&lt;br /&gt; B turnON&lt;/p&gt;
&lt;p&gt;; Subrutina delay&lt;br /&gt;delay&lt;br /&gt; LDR R2,=DELAY_INTERVAL&lt;br /&gt;ret&lt;br /&gt; CBZ R2, delayDone&lt;br /&gt; SUBS R2, R2, #1&lt;br /&gt; B ret&lt;br /&gt;delayDone&lt;br /&gt; MOV pc,lr ; Return&lt;br /&gt; &lt;br /&gt; END&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://community.arm.com/cfs-file/__key/communityserver-discussions-components-files/472/WhatsApp-Video-2020_2D00_10_2D00_30-at-19.38.42.mp4"&gt;community.arm.com/.../WhatsApp-Video-2020_2D00_10_2D00_30-at-19.38.42.mp4&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/320x240/__key/communityserver-discussions-components-files/472/1.jpg" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>Ask A Question I</title><link>https://community.arm.com/achievements/460ac7df-7ccc-4c42-a204-9e05eef3be09</link><pubDate>Sat, 31 Oct 2020 01:53:03 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:081c1062-9a81-4618-9c98-535ecb8b8cdb</guid><dc:creator /><description>Ask a question in a forum.</description></item></channel></rss>