User Tools

Site Tools


Writing /home/donghee/dh8.kr/wiki/data/meta/ossicubesat.meta failed
Unable to save metadata file. Hint: disk full; file permissions; safe_mode setting.
ossicubesat

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ossicubesat [2012/05/13 18:54] dongheeossicubesat [2026/06/11 05:52] (current) – external edit 127.0.0.1
Line 1598: Line 1598:
  
  - Callsign 받기  - Callsign 받기
 +
 +
 +
 +##### I2C msp430 communication
 +
 +
 +master 
 +
 +led 6.0
 +button 6.1
 +
 + #include  <msp430x16x.h>
 + void delay (void);
 + char TXData = 0;
 +
 + void main (void)
 + {
 +   WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
 +
 +   P3SEL |= 0x0A;                            // Select I2C pins
 +   U0CTL |= I2C + SYNC;                      // Recommended init procedure
 +   U0CTL &= ~I2CEN;                          // Recommended init procedure
 +   I2CTCTL |= I2CSSEL1 + I2CTRX;             // SMCLK, transmit
 +   I2CNDAT = 0x03;                           // Write Three bytes
 +   I2CSA = 0x0048;                           // Slave Address is 048h
 +   U0CTL |= I2CEN;                           // Enable I2C
 +
 +   U0CTL |= MST;                             // Master mode
 +   I2CTCTL |= I2CSTT + I2CSTP;               // Initiate transfer
 +   while ((I2CIFG & TXRDYIFG) == 0);         // Wait for transmitter to be ready
 +   I2CDRB = TXData;                          // Load  I2CDRB
 +   while ((I2CIFG & TXRDYIFG) == 0);         // Wait for transmitter to be ready
 +   I2CDRB = TXData;                          // Load  I2CDRB
 +   while ((I2CIFG & TXRDYIFG) == 0);         // Wait for transmitter to be ready
 +
 +   while(1)
 +   {
 +
 +   if((P6IN & BIT1) == 0) { // LOW?
 +   I2CDRB = 1;
 +   P6OUT |= BIT0;
 +   }
 +    }
 + }
 +
 +
 +slave
 +
 + #include  <msp430x16x.h>
 +
 + char RXData = 0;
 +
 + void main (void)
 + {
 +   WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
 +   P6DIR |= BIT0;
 +   P6OUT &= ~BIT0;
 +
 +   P3SEL |= 0x0A;                            // Select I2C pins
 +   U0CTL |= I2C + SYNC;                      // Recommended init procedure
 +   U0CTL &= ~I2CEN;                          // Recommended init procedure
 +   I2CTCTL |= I2CSSEL1;                      // SMCLK
 +   I2COA = 0x0048;                           // Own Address is 048h
 +   I2CIE = RXRDYIE;                          // Enable RXRDYIFG interrupt
 +   U0CTL |= I2CEN;                           // Enable I2C
 +
 +   _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt
 +   while(1){
 +   if (RXData !=0)
 +   P6OUT |= BIT0;
 +   else
 +   P6OUT &= ~BIT0;
 +   }
 + }
 +
 +
 + // Common ISR for I2C Module
 + #pragma vector=USART0TX_VECTOR
 + __interrupt void I2C_ISR(void)
 + {
 + switch( I2CIV )
 + {
 +    case  2: break;                          // Arbitration lost
 +    case  4: break;                          // No Acknowledge
 +    case  6: break;                          // Own Address
 +    case  8: break;                          // Register Access Ready
 +    case 10:                                 // Receive Ready
 +       RXData = I2CDRB;                      // RX data
 +      _BIC_SR_IRQ(CPUOFF);                   // Clear LPM0
 +      break;
 +    case 12:  break;                         // Transmit Ready
 +    case 14: break;                          // General Call
 +    case 16: break;                          // Start Condition
 + }
 + }
 +
 +
 +
 +
 +
 +#### msp430 blink assembly
 +
 +blink 
 +
 + ;*******************************************************************************
 + ;   MSP430x1xx Demo - Software Toggle P1.0
 + ;
 + ;   Description; Toggle P1.0 by xor'ing P0.1 inside of a software loop.
 + ;   ACLK = n/a, MCLK = SMCLK = default DCO ~ 800k
 + ;
 + ;                MSP430x1xx
 + ;             -----------------
 + ;         /|\|              XIN|-
 + ;          | |                 |
 + ;          --|RST          XOUT|-
 + ;            |                 |
 + ;            |             P6.0|-->LED
 + ;
 + ;   M.Buccini
 + ;   Texas Instruments, Inc
 + ;   September 2004
 + ;   Built with CCE for MSP430 Version: 1.00
 + ;*******************************************************************************
 +             .cdecls C,LIST,"msp430x16x.h"  ; Include device header file
 +
 + ;-------------------------------------------------------------------------------
 +             .text                           ; Progam Start
 + ;-------------------------------------------------------------------------------
 + RESET       mov.w   #300h,SP                ; Initialize 'x1121 stackpointer
 + StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop WDT
 + SetupP1     bis.b   #001h,&P6DIR            ; P1.0 output
 +                                             ;
 + Mainloop    xor.b   #001h,&P6OUT            ; Toggle P6.0
 + Wait        mov.w   #050000,R15             ; Delay to R15
 + L1          dec.w   R15                     ; Decrement R15
 +             jnz     L1                      ; Delay over?
 +             jmp     Mainloop                ; Again
 +                                             ;
 + ;-------------------------------------------------------------------------------
 + ;           Interrupt Vectors
 + ;-------------------------------------------------------------------------------
 +             .sect   ".reset"                ; MSP430 RESET Vector
 +             .short  RESET                   ;
 +
 +             .end
 +
 +
 +
 +
 +
  </markdown>  </markdown>
ossicubesat.1336935251.txt.gz · Last modified: 2026/06/11 05:52 (external edit)