<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > GNU ARM匯編--(九)s3c2440的PWM

GNU ARM匯編--(九)s3c2440的PWM

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò ) 收藏
  • //movr2,r0
  • ldrr1,=TCNTB0
  • //ldrr2,=200
  • strr0,[r1]
  • movr0,r0,LSR#2
  • ldrr1,=TCMPB0
  • //ldrr2,=50
  • strr0,[r1]
  • ldrr1,=TCON
  • ldrr2,=(DZ_eable<<4)|(auto_reload<<3)|(inverter<<2)|(man_update<<1)|(start<<0)
  • strr2,[r1]
  • ldrr1,=TCON
  • ldrr2,=(DZ_eable<<4)|(auto_reload<<3)|(inverter<<2)|(clear_man_update<<1)|(start<<0)
  • strr2,[r1]
  • ldrr2,=GPBDAT
  • ldrr1,=0x1a0
  • strr1,[r2]
  • movpc,lr
  • main:
  • ldrr1,=TCON
  • ldrr2,=(DZ_eable<<4)|(auto_reload<<3)|(inverter<<2)|(man_update<<1)|(stop<<0)
  • strr2,[r1]
  • ldrlr,=loop
  • ldrpc,_pwm_uart_test
  • _pwm_uart_test:.wordpwm_uart_test
  • loop:
  • bloop@死循環(huán)
  • undefined_instruction:
  • nop
  • software_interrupt:
  • nop
  • prefetch_abort:
  • nop
  • data_abort:
  • nop
  • not_used:
  • nop
  • fiq:
  • nop
  • pwm_uart_test.c內容如下:
    [cpp]view plaincopy
    1. #include"pwm_uart_test.h"
    2. externvoidBuzzer_Freq_Set(intfreq);
    3. //externvoidBuzzer_Freq_Set(void);
    4. charuart_GetByte(void)
    5. {
    6. while(!(rUTRSTAT0&0x1));//WaituntilTHRisempty.
    7. returnRdURXH0();
    8. }
    9. voiduart_GetString(char*pt)
    10. {
    11. while(*pt)
    12. uart_GetByte();
    13. }
    14. voiduart_SendByte(intdata)
    15. {
    16. if(data==)
    17. {
    18. while(!(rUTRSTAT0&0x2));
    19. WrUTXH0();
    20. }
    21. while(!(rUTRSTAT0&0x2));//WaituntilTHRisempty.
    22. WrUTXH0(data);
    23. }
    24. //====================================================================
    25. voiduart_SendString(char*pt)
    26. {
    27. while(*pt)
    28. uart_SendByte(*pt++);
    29. }
    30. voiduart_test(void)
    31. {
    32. charstr[20]="helloworld";
    33. inta=97;
    34. //while(1)
    35. //uart_SendByte(a);
    36. uart_SendString(str);
    37. chars=uart_GetByte();
    38. //if(s==a)
    39. if(s==97)
    40. rGPBDAT=0x1c0;
    41. //uart_SendByte(a);
    42. //uart_SendByte(97);
    43. //uart_SendByte(a);
    44. uart_SendByte((int)s);
    45. uart_SendByte((int)s);
    46. }
    47. voidpwm_uart_test(void)
    48. {
    49. intfreq=10;
    50. Buzzer_Freq_Set(freq);
    51. //Buzzer_Freq_Set();
    52. uart_SendString("start");
    53. /*
    54. inti;
    55. for(i=0;i<1000;i++)
    56. uart_SendString("wait");
    57. while(1)
    58. {
    59. charkey=uart_GetByte();
    60. uart_SendByte(key);
    61. if(key==a||key==A)
    62. {
    63. if(freq<2000)//lci20000
    64. freq+=10;
    65. uart_SendByte(a);
    66. Buzzer_Freq_Set(freq);
    67. }
    68. if(key==b||key==B)
    69. {
    70. if(freq>11)
    71. freq-=10;
    72. uart_SendByte(b);
    73. Buzzer_Freq_Set(freq);
    74. }
    75. //uart_SendString(" Freq=%d",freq);
    76. //if(key==ESC_KEY)
    77. //{
    78. //Buzzer_Stop();
    79. //return;
    80. //}
    81. }
    82. */
    83. }

    在這個(gè)例子中,既有匯編調用c,也有c調用匯編.可供以后參考.目前,串口輸入還有些問(wèn)題,還得繼續調一下.串口遇到一個(gè)想不明白的問(wèn)題,單單串口是正常的,但在打開(kāi)PWM定時(shí)器后,串口就出問(wèn)題了,打印只能出前面幾個(gè)字符,這是個(gè)神馬情況,有人知道的請幫我下,thks!
    從代碼中有這樣的設定:
    定時(shí)器的輸入時(shí)鐘為@定時(shí)器輸入時(shí)鐘周期 = PCLK/(prescaler + 1)/(divider value)
    @clk = 100M/(249+1)/8=25k
    TCNTB0設為200,而TCMPB0為50,則TOUT0輸出占空比為25%的方波,方波的周期為200/clk=8ms
    如果有示波器,倒可以驗證一下這個(gè)結果.如果有對朋友覺(jué)得這個(gè)方波估計的不對,歡迎指出,謝謝!

    上一頁(yè) 1 2 3 下一頁(yè)

    關(guān)鍵詞: ARM匯編s3c2440PW

    評論


    相關(guān)推薦

    技術(shù)專(zhuān)區

    關(guān)閉
    国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
    <dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>