Search the web
Sign In
New User? Sign Up
AVRButterFly · AVR ButterFly & Beginners Group
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Want your group to be featured on the Yahoo! Groups website? Add a group photo to Flickr.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
WAIT-FOR TIMER2 SOUND DEMO (42 Bytes)   Message List  
Reply | Forward Message #984 of 1000 |
This demonstrates the use of timer-0 in CTC mode that polls a flag when timer reaches a pre-determined amount over-and-over to produce different sounds.

;-----------------------------------------------------;
; WAIT_TIMER2.ASM for AVR BUTTERFLY                   ;
; AUTHOR: DANIEL J. DOREY (RETRODAN AT AVR FREAKS)    ;
; CREATED: 21-OCT-09               UPDATED: 21-OCT-09 ;
;                                                     ;
; PROGRAM DEMONSTRATES USE OF 8-BIT WAIT-FOR TIMER    ;
; USING CTC AND FLAG MODE. USES SOUND                 ;
;-----------------------------------------------------;

.INCLUDE "M169DEF.INC" ;(BUTTERFLY DEFINITIONS)

;----------------------------------------;
; FIRST I'LL DEFINE SOME REGISTER TO USE ;
;----------------------------------------;
.DEF A = R16   ;GENERAL PURPOSE ACCUMULATOR
.DEF I = R21   ;INDEXES FOR LOOP CONTROL
.DEF J = R22

.ORG 0000
    RJMP ON_RESET  ;START-UP VECTOR TO OUR PROGRAM

;-----------------------------------------;
; WE START HERE ON ALL RESEST AND REBOOTS ;
; FIRST WE SETUP A STACK AREA AT HIGH RAM ;
;-----------------------------------------;
START:
ON_RESET:
    LDI A,LOW(RAMEND)   ;SETUP STACK POINTER
    OUT SPL,A           ;SO CALLS TO SUBROUTINES
    LDI A,HIGH(RAMEND)  ;WORK CORRECTLY
    OUT SPH,A           ;

;--------------;
; MAIN ROUTINE ;
;--------------;
MAIN: SBI DDRB,5        ;SET FOR SPEAKER OUTPUT ON PORT B
      LDI A,0b0000_1011 ;SET PRESCALE TO 64,
      OUT TCCR0A,A     
      LDI A,50;<======= CHANGE THIS TO CHANGE TONES
      OUT OCR0A,A
MAINL:SBI PORTB,5       ;TURN SPEAKER ON
      RCALL WAITER      ;WAIT
      CBI PORTB,5       ;TURN SPEAKER OFF
      RCALL WAITER      ;WAIT
       RJMP MAINL       ;GO ROUND

;-----------------------------;
; WAITS FOR CLOCK TO HIT ZERO ;
;-----------------------------;              
WAITER:
WLOOP: IN A,TIFR0
       SBRS A,OCF0A     ;TOV0=0,OCF0A=1
        RJMP WLOOP
       LDI A,3          ;RESET FLAGS
       OUT TIFR0,A
        RET


Thu Oct 22, 2009 2:41 am

retr0dan
Offline Offline
Send Email Send Email

Forward
Message #984 of 1000 |
Expand Messages Author Sort by Date

This demonstrates the use of timer-0 in CTC mode that polls a flag when timer reaches a pre-determined amount over-and-over to produce different sounds. ...
retr0dan
Offline Send Email
Oct 22, 2009
2:42 am
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help