Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
445
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.  * Ultra_Sonic.asm
  3.  *
  4.  *  Created: 26.11.2014 19:33:36
  5.  *     Chip: Atmega8515
  6.  *     Takt: 1mHz
  7.  */
  8.  
  9. .include "m8515def.inc"
  10.  
  11. .def temp = r16
  12. .def solldist = r17
  13. .def dist = r19
  14. .def distInfo = r20
  15.  
  16. .org 0x0000
  17.         rjmp    main                  ; Reset Handler
  18. main:
  19.         ; Stackpointer initialisieren
  20.         ldi     temp, HIGH(RAMEND)
  21.         out     SPH, temp
  22.         ldi     temp, LOW(RAMEND)    
  23.         out     SPL, temp
  24.  
  25.         ldi     temp, 0xFF            ; Port B auf Ausgang
  26.         out     DDRB, temp
  27.         ldi     temp, 0xFF            //PortB auf HIGH
  28.         out     PORTB, temp
  29.  
  30.         ldi     temp, 0xFF            // Port A auf Eingang
  31.         out     DDRA, temp
  32.         out     PORTA, temp           //Interne Pull UPs
  33.  
  34. test:
  35. ldi temp, 0x00 //Fallende Flanke?
  36. out PORTB, temp
  37. nop//10µs delay geht auch kompakter aber sicherheitshalber habe ich es zum funktionstest mit nop´s gemacht.
  38. nop
  39. nop
  40. nop
  41. nop
  42. nop
  43. nop
  44. nop
  45. ldi solldist, 0x05 //Soll distanz
  46. ldi distInfo, 0x26// Dec 38 für schleife
  47. ldi temp, 0xFF    
  48. out PORTB, temp //13Ticks = 12µS
  49.  
  50. warten: //Trigger wurde gesendet warte auf Antwort
  51. sbis PINA, 0
  52. rjmp warten
  53.  
  54. signal: //Antwort kommt
  55. inc dist // 1 dist = 2 cm entfernung 1 Tick / 117
  56.  
  57. loop:
  58. dec distInfo
  59. brne loop
  60. nop
  61. //3*38 Ticks = 114 ticks
  62. sbic PINA, 0 //115 ticks
  63. rjmp signal  //116 ticks
  64.  
  65. // Signal ist weg weiter zur Auswertung
  66. //INFO widersprüchliche Angaben in Datenblättern verwirren.
  67. //Im englischen wird gesagt 58µs Pro cm laufzeit
  68. //Im deustchen steht 117ms für 2cm?
  69.  
  70. cp solldist, dist
  71. breq ledan
  72. rjmp ledaus
  73.  
  74. ledan:
  75. ldi temp, 0xFF
  76. out PORTD, temp
  77. ldi dist, 0x00
  78. rjmp test
  79.  
  80. ledaus:
  81. ldi temp, 0x00
  82. out PORTD, temp
  83. ldi dist, 0x00
  84. rjmp test
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement