Hi, ich habe ein MSP430F6638 auf einem PZ100USb board mit einem SHT25 über I²C verbunden und führe Messungen durch. Das funktioniert auch soweit alles Problemlos. Das Problem tauchert erst auf wenn ich beim Code Composer Studio(v5) im Debug Modus die Messungen in einem Graph ausgeben lasse. Nach einiger Zeit, manchmal nach 4 Messungen manchmal erst nach 1500 Messungen, kommt auf jeden Fall die Nachricht: " MSP430: Trouble Reading Memory Block at 0x457a (dort werden die Messungen in einem Array gespeichert) on Page 0 of Length 0x320. Could not read device memory" Meine Frage wäre ob jemand schon mal so ein Problem hatte und ob jemand einen Lösungsansatz wüsste. hier ist mal mein Code der Main(), auch wenn der Fehler nur auftaucht wenn ich die Werte in einem Graph ausgeben lasse.
1 | void main (void) { |
2 | WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer to prevent timeout reset |
3 | init(); |
4 | I2C_init(SHT25,SHT25_CLK); |
5 | |
6 | P1DIR |= 0x01; |
7 | P6SEL |= 0x01; // Enable A/D channel A0 |
8 | ADC12CTL0 = ADC12ON+ADC12SHT0_8+ADC12MSC; // Turn on ADC12, set sampling time |
9 | // set multiple sample conversion
|
10 | ADC12CTL1 = ADC12SHP+ADC12CONSEQ_2; // Use sampling timer, set mode |
11 | ADC12IE = 0x01; // Enable ADC12IFG.0 |
12 | ADC12CTL0 |= ADC12ENC; // Enable conversions |
13 | |
14 | DAC12_0CTL0 = DAC12IR + DAC12SREF_1 + DAC12AMP_5 + DAC12CALON; |
15 | DAC12_0CTL0 |= DAC12ENC; // Enable DAC12 |
16 | |
17 | while(1){ |
18 | time_1++; |
19 | if(time_1>=100){ |
20 | ADC12CTL0 |= ADC12SC; |
21 | DAC12_0DAT = ADC12MEM0; |
22 | time_2++; |
23 | if(time_2>=400){ |
24 | P1OUT^=0x01; |
25 | SHT25_Measurement(1); |
26 | SHT25_Measurement(0); |
27 | P1OUT^=0x01; |
28 | time_2=0; |
29 | }
|
30 | time_1=0; |
31 | }
|
32 | |
33 | }
|
34 | }
|