User Tools

Site Tools


avr_assembler

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revision Both sides next revision
avr_assembler [2009/07/27 01:54]
macegr created
avr_assembler [2009/07/27 02:27]
macegr
Line 1: Line 1:
 Renesis from Darker Technologies contributes his AVR assembly code example for controlling ShiftBrites using an Atmega164: Renesis from Darker Technologies contributes his AVR assembly code example for controlling ShiftBrites using an Atmega164:
  
-<file asm main.asm> +**shiftbrite_example_20090726.asm** 
-;//_ part definition and include files+<code asm>;//_ shiftbrite_example_20090726.asm 
 +
 +; avr assembly macros for driving shiftbrites. 
 +
 +; this example swaps the colors purple and green between two  
 +; shiftbrites a few times a second at 8MHz core speed.  
 +
 +; the number of shiftbrites and the io pins used by the code are  
 +; defined in the file "sb_config.inc". 8bit and 10bit color data  
 +; modes can also be selected in this file. 
 +
 +; The color data is stored in sram and shifted out by the 
 +; macro "sb_send_all". The cache size is dependent on the number 
 +; of shiftbrites and 8b or 10b mode selection. Data can be created 
 +; in, stored to, or loaded from the cache using the macros "sb_sti", 
 +; "sb_st", and "sb_ld"
 +
 +; detailed descriptions of these macros can be found in the file 
 +; "sb_frontend.inc"
 +
 +; developed on avrstudio4 using conditional preprocessor directives. 
 + 
 + 
 +;//_ part definition (change this to match your avr)
  
 .include "m164pdef.inc" .include "m164pdef.inc"
 +
 +
 +;//_ shiftbrite related include files
 +
 .include "sb_config.inc" .include "sb_config.inc"
 .include "sb_backend.inc" .include "sb_backend.inc"
 .include "sb_frontend.inc" .include "sb_frontend.inc"
 +
  
 ;//_ register definitions ;//_ register definitions
Line 17: Line 45:
 .def temp5  = r20 .def temp5  = r20
 .def temp6  = r21 .def temp6  = r21
 +
  
 ;//_ initialization ;//_ initialization
Line 33: Line 62:
     sb_pin_init     sb_pin_init
          
-    ; setup shiftbriter color data +    ; setup shiftbrite red/green/blue color data
- +
-    sb_sti 1,$aa,$00,$00 +
-    sb_sti 2,$00,$ff,$aa+
  
 +    sb_sti 1,$ff,$00,$ff
 +    sb_sti 2,$00,$ff,$00
  
  
Line 43: Line 71:
  
 deathloop:  deathloop: 
 +
 +    ; shift color data out 
  
     sb_send_all     sb_send_all
  
-    ;primitive delay routine+    ; primitive delay routine
  
     ldi r16,100     ldi r16,100
Line 69: Line 99:
     sb_st 2,r1,r2,r3     sb_st 2,r1,r2,r3
  
-    ;restart mainloop+    ; restart mainloop
  
     jmp deathloop     jmp deathloop
-</file>+</code>
  
-<file asm sb_config.inc>+ 
 +**sb_config.inc** 
 +<code asm>
 ;//_ shiftbright constants ;//_ shiftbright constants
  
Line 87: Line 119:
  
     ; data pin         ; data pin    
-.set sb_d_port   portc +.set sb_d_port   porta 
-.set sb_d_ddr    = ddrc +.set sb_d_ddr    = ddra 
-.set sb_d_pin    = pc0+.set sb_d_pin    = pa0
  
     ; latch pin     ; latch pin
-.set sb_l_port   portc +.set sb_l_port   porta 
-.set sb_l_ddr    = ddrc +.set sb_l_ddr    = ddra 
-.set sb_l_pin    = pc1+.set sb_l_pin    = pa1
  
     ; enable pin     ; enable pin
-.set sb_e_port   portc +.set sb_e_port   porta 
-.set sb_e_ddr    = ddrc +.set sb_e_ddr    = ddra 
-.set sb_e_pin    = pc2+.set sb_e_pin    = pa2
  
     ; clock pin     ; clock pin
-.set sb_c_port   portc +.set sb_c_port   porta 
-.set sb_c_ddr    = ddrc +.set sb_c_ddr    = ddra 
-.set sb_c_pin    = pc3 +.set sb_c_pin    = pa3 
-</file>+</code>
  
-<file asm sb_backend.inc>+**sb_backend.inc** 
 +<code asm>
 ;//_ shiftbrite backend macros  ;//_ shiftbrite backend macros 
     ;    ;     ;    ;
Line 445: Line 478:
  
 .endmacro .endmacro
-</file>+</code> 
  
-<file asm sb_frontend.inc>+**sb_frontend.inc** 
 +<code asm>
 ;//_ shiftbrite frontend macros ;//_ shiftbrite frontend macros
     ;     ;
Line 532: Line 567:
     ;     ;
     ; 10b example:  sb_st 1,r16,r17,r18,r19,r20,r21     ; 10b example:  sb_st 1,r16,r17,r18,r19,r20,r21
-    ; 8b example:   sb_st 1,r16.r18,r20+    ; 8b example:   sb_st 1,r16,r18,r20
  
 #if (SB8_MODE) #if (SB8_MODE)
Line 670: Line 705:
  
 .endmacro .endmacro
-</file>+</code>
/home/macetec/public_html/docs/data/pages/avr_assembler.txt · Last modified: 2009/07/27 02:32 by macegr