Difference between revisions of "H3 IoT og Embedded"
From Teknologisk videncenter
m (→I2C og RS485 eksempel) |
m (→Torsdag opgave) |
||
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | = | + | =Opgave onsdag= |
− | + | At vise temperaturen fra I2C [[Grove I2C High Accuracy Temerature Sensor - Seeed|Temperatur sensor]] hvert femte sekund på skærmen. | |
− | + | ==Fælles== | |
− | * | + | Udgangspunkt er projektet [http://mars.tekkom.dk/data/MSP430/H3_IoT/ht_cirbuf2.zip ht_cirbuf2.zip]. alle downloader og unzipper i projektfolder samt starter projektet i IAR Workbench. |
− | + | *Afprøv projektet at det fungerer | |
− | + | ------------------ | |
+ | Vi vil i fællesskab implementere (stjæle) I2C i projektet fra [http://mars.tekkom.dk/data/MSP430/H3_IoT/i2c.zip i2c.zip] | ||
+ | ==Individual opgave== | ||
+ | På linje 6 på skærmen skal der hvert femte sekund vises temperatur fra sensoren. Hvordan det skal implementeres er op til jer. | ||
+ | '''Hint:''' | ||
+ | *Der er en timer mere som hedder ta1 som er magen til ta0. | ||
+ | ** Beskrevet på side 460 i [https://mars.merhot.dk/data/MSP430/slau208.pdf MSP430xF manualen] | ||
+ | ** SMCLK er på 1.000.000 Hz og ACLK er på 32.768 Hz - kan fem sekundes interval lade sig gøre med en 16 bits timer. | ||
+ | ** Det er muligt at dividere med 8 to gange | ||
+ | =Torsdag opgave= | ||
+ | Initialiser og få RTC_A til at køre og vis tiden på linje 10 hvert sekund. | ||
+ | *Se side 565 i [https://mars.merhot.dk/data/MSP430/slau208.pdf Family manual] | ||
+ | *Source kode eksempel på epoch2time [[STM32F107VC/Using the RTC Real Time Clock]] | ||
+ | <source lang=c> | ||
+ | #include <msp430.h> | ||
+ | |||
+ | #define HOLDRTC 0x40 // 0=Running ; 1=Stopped | ||
+ | #define MODERTC 0x20 // 0=counter ; 1=calender mode | ||
+ | void RTC_A_init(void) { | ||
+ | if ( (RTCCTL1 & HOLDRTC) == 0) { | ||
+ | return; | ||
+ | } | ||
+ | RTCCTL1 &= ~HOLDRTC; | ||
+ | RTCCTL1 |= MODERTC; | ||
+ | } | ||
+ | </source> | ||
==Scheduler/Event handler metode== | ==Scheduler/Event handler metode== | ||
− | *[http://mars.tekkom.dk/data/MSP430/H3_IoT/ht_cirbuf.zip | + | *[http://mars.tekkom.dk/data/MSP430/H3_IoT/ht_cirbuf.zip ht_cirbuf2.zip] |
==I2C og RS485 eksempel== | ==I2C og RS485 eksempel== | ||
''NOTE:'' Linie 99 og 100 i main skal kommenteres for at anvende I2C | ''NOTE:'' Linie 99 og 100 i main skal kommenteres for at anvende I2C | ||
*[http://mars.tekkom.dk/data/MSP430/H3_IoT/i2c.zip i2c.zip] | *[http://mars.tekkom.dk/data/MSP430/H3_IoT/i2c.zip i2c.zip] | ||
+ | *[[Grove I2C High Accuracy Temerature Sensor - Seeed]] | ||
[[Category:MSP430]] | [[Category:MSP430]] |
Latest revision as of 11:45, 2 June 2022
Contents
Opgave onsdag
At vise temperaturen fra I2C Temperatur sensor hvert femte sekund på skærmen.
Fælles
Udgangspunkt er projektet ht_cirbuf2.zip. alle downloader og unzipper i projektfolder samt starter projektet i IAR Workbench.
- Afprøv projektet at det fungerer
Vi vil i fællesskab implementere (stjæle) I2C i projektet fra i2c.zip
Individual opgave
På linje 6 på skærmen skal der hvert femte sekund vises temperatur fra sensoren. Hvordan det skal implementeres er op til jer.
Hint:
- Der er en timer mere som hedder ta1 som er magen til ta0.
- Beskrevet på side 460 i MSP430xF manualen
- SMCLK er på 1.000.000 Hz og ACLK er på 32.768 Hz - kan fem sekundes interval lade sig gøre med en 16 bits timer.
- Det er muligt at dividere med 8 to gange
Torsdag opgave
Initialiser og få RTC_A til at køre og vis tiden på linje 10 hvert sekund.
- Se side 565 i Family manual
- Source kode eksempel på epoch2time STM32F107VC/Using the RTC Real Time Clock
#include <msp430.h>
#define HOLDRTC 0x40 // 0=Running ; 1=Stopped
#define MODERTC 0x20 // 0=counter ; 1=calender mode
void RTC_A_init(void) {
if ( (RTCCTL1 & HOLDRTC) == 0) {
return;
}
RTCCTL1 &= ~HOLDRTC;
RTCCTL1 |= MODERTC;
}
Scheduler/Event handler metode
I2C og RS485 eksempel
NOTE: Linie 99 og 100 i main skal kommenteres for at anvende I2C