Hallo, ich bin benutze einen msp430F2274, und möchte die Temperatur messen, ich habe code schon geschrieben und läuft alles soweit in ordnung allerdings weiss ich net wo ich den Temperaturswert ablesen kann. ich wäre sehr dankbar, wenn ich mir jemand helfen kann. vielen danke Michael
Hä? Hast du denn ein Display oder irgendeine Art von Kommunikation dran? Am Chip selber kannst du ja nix ablesen....
Danke erstmal für deine Antwort, ich habe leider kein display, aber In
IAR gibt ein LCD display anzeiger, deshlab weiss ich nicht ob ich dort
sehe kann und wie.
ich schicke das programm was ich habe, vielleicht kannst du mir ja
zeigen wie ich die Temperatur in dieser zeiger sehen kann.
#include "msp430x22x4.h"
long temp;
volatile long IntDegF;
volatile long IntDegC;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
ADC10CTL1 = INCH_10 + ADC10DIV_3; // Temp Sensor ADC10CLK/4
ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON + ADC10IE;
TACCR0 = 30; // Delay to allow Ref to
settle
TACCTL0 |= CCIE; // Compare-mode interrupt
TACTL = TASSEL_2 + MC_1; // TACLK = SMCLK, Up mode
__bis_SR_register(CPUOFF + GIE); // LPM0, TA0_ISR will force
exit
TACCTL0 &= ~CCIE; // Disable timer Interrupt
while(1)
{
ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion
start
__bis_SR_register(CPUOFF + GIE); // LPM0 with interrupts
enabled
// oF = ((A10/1024)*1500mV)-923mV)*1/1.97mV = A10*761/1024 - 468
temp = ADC10MEM;
IntDegF = ((temp - 630) * 761) / 1024;
// oC = ((A10/1024)*1500mV)-986mV)*1/3.55mV = A10*423/1024 - 278
temp = ADC10MEM;
IntDegC = ((temp - 673) * 423) / 1024;
__no_operation(); // SET BREAKPOINT HERE
}
}
// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
__bic_SR_register_on_exit(CPUOFF); // Clear CPUOFF bit from
0(SR)
}
#pragma vector=TIMERA0_VECTOR
__interrupt void TA0_ISR(void)
{
TACTL = 0; // Clear Timer_A control
registers
__bic_SR_register_on_exit(CPUOFF); // Clear CPUOFF bit from
0(SR)
}
vielen Dank.
Michael
>deshlab weiss ich nicht ob ich dort sehe kann und wie.
Schau dir einfach deine Temperatur Variable an.
Einfach an der vorgesehenen Stelle anhalten1 | __no_operation(); // SET BREAKPOINT HERE |
Und mittels "View" -> "Locals" deine Variable "IntDegC" anschauen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.