SHARE
TWEET

Untitled

a guest Nov 28th, 2014 217 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
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top