|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
ticla Član
Pridružen-a: Sob 15 Dec 2007 22:52 Prispevkov: 440 Aktiv.: 2.21 Kraj: Župečja vas
|
Objavljeno: Tor Apr 28, 2015 6:42 pm Naslov sporočila: MSP430 se sam resetira |
|
|
Imam težavo, da ko v kodo dodam, da omogočim interrutpe _EINT() se mi MSP samodejno resetira in sploh ne gre prek te funkcije. Za to funkcijo sem dal izpis prek RS232 in mi ne pošlje nič na port. Če _EINT() onemogočim mi pa pošlje prek porta, samo mi potem interupti ne delajo. Vmes mi je še celo nekaj časa delovalo, zdaj pa se je napaka ponovila ko sem samo ponovno prevedel in nisem kode spremenil.
Ne vem več kje še naj pogledam, če sem kaj narobe inicializiral. Ima kdo kakšno idejo.
Uporabljam pa crossStudio for MSP430 2.1.2 verzijo
MSP430F149
Razvojna ploščica, kjer sem dodal 8MHz kristal
Koda: |
void
main(void)
{
int n=0;
WDTCTL = WDTPW + WDTHOLD;
Initialization();
delay (60000);
delay (60000);
delay (60000);
delay (60000);
WDTCTL = WDTPW + WDTHOLD;
SendStringUart1("Build number: ");
SendIntegerUart1(BUILDNUMBER);
SendUart1NewLine ();
//IE1 |= URXIE0;
IE2 |= URXIE1;
// WDTCTL = WDTPW + WDTHOLD;
_EINT(); //-- Enable interrupts.
SendStringUart1("1 ");
//WDTCTL = 0x5A08;
//SendStringUart1("2 ");
//SendStringUart1("3 ");
WDTCTL = 0x5A08;
//SendStringUart1("4 ");
while (1)
{ //SendStringUart1("Build number: ");
//SendIntegerUart1(n);
//n++;
WDTCTL = 0x5A08; //-- RESET watchdog timer
if ( BIT_VALUE_UART1 & DEF_RECEIVE_PACKET )DecodeUart1();
// if((P1IN&0x04)==0)ResetRele();
}
} |
Koda: |
void Initialization (void)
{
unsigned int i;
WDTCTL = WDTPW + WDTHOLD; //-- Stop WDT
for ( i=0; i<50000; i++ );
//--------------------------------------------------------------------------
//-- EXTERNAL QUARTZ start
BCSCTL1 &= ~XT2OFF; //-- XT2on
do {
IFG1 &= ~OFIFG; //-- Clear OSCFault flag
for (i = 0xFF; i > 0; i--); //-- Time for flag to set
}
while ((IFG1 & OFIFG) != 0); //-- OSCFault flag still set?
BCSCTL2 |= SELM1+SELS; //-- MCLK = SMCLK = XT2
//--------------------------------------------------------------------------
for ( i=0; i<5000; i++ );
for ( i=0; i<5000; i++ );
//--------------------------------------------------------------------------
InitUart0();//-- serial port initialization
InitUart1 ();
TimerInit();
AnalogInputInit();
//-------------------------------------------------------------------------
//-------------------------------------------------------------------------
//-- PORT P1
P1DIR = 0xCD; //-- 11001101 LED 2,P1.1, A0,A1,A2,A14,A15,WR inputs P1.1, A2, A14
// P1OUT = 0x00; //-- default output value
P1OUT |= 0x40; //-- SCL data line set to logical high
//-------------------------------------------------------------------------
//-- PORT P2
P2DIR |= 0x03; //-- output, MUX_1_6, MUX_1_7
P2OUT |= 0x03; //-- X3 input for Pfwd measure ( when CurrentMeasureValueQuick=0;)
P2DIR |= 0x08; //-- output, LE_DIODE
P2OUT &= ~0x08; //-- output, LE_DIODE=0
P2DIR |= 0x30; //-- output, SDA, SCL
P2DIR |= 0xC0; //-- output, ETH_IOR, ETH_IOW
P2OUT |= 0xC0; //-- HIGH, ETH_IOR, ETH_IOW
//-------------------------------------------------------------------------
//-- PORT P3
P3DIR |= 0x0F; //-- output, ETHERNET ADDRESS 0 to 3
P3SEL |= 0x30; //-- P3.4,5 = USART0 option select
P3DIR |= 0x10; //-- P3.4 = output direction
P3SEL |= 0xC0; //-- P3.6,7 = USART1 option select
P3DIR |= 0x40; //-- P3.6 = output direction
//-------------------------------------------------------------------------
//-- PORT P4
P4DIR=0xFF; //vsi izhodi
P4OUT=0x00;
//-------------------------------------------------------------------------
//-- PORT P5
P5DIR |= 0xF0; //-- DATA PORT 0-3 input, 4-7 output
P5OUT &= ~0x10;
P5OUT &= ~0x20;
P5OUT &= ~0x40;
P5OUT &= ~0x80;
//-------------------------------------------------------------------------
//-- PORT P6
P6SEL |= 0xFF; //-- Enable A/D channel A0
//-------------------------------------------------------------------------
enable_analog_interrupt();
}
|
_________________ Moja delavnica ni razmetana, je samo taktično urejena. |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 69 dni
Powered by phpBB © 2001, 2005 phpBB Group
|