Difference between revisions of "H3 IoT og Embedded"

From Teknologisk videncenter
Jump to: navigation, search
m
m (Torsdag opgave)
 
(10 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Grupper=
+
=Opgave onsdag=
*I2C gruppe (Der skal implementeres en eller anden form for køsystem)
+
At vise temperaturen fra I2C [[Grove I2C High Accuracy Temerature Sensor - Seeed|Temperatur sensor]] hvert femte sekund på skærmen.
*RS485: Er delt i to grupper der skal arbejde sammen (Master/Slave protokol skal opfindes)
+
==Fælles==
** Gruppe på MSP430 (Slave)
+
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.
** Gruppe på Linux (Master)  
+
*Afprøv projektet at det fungerer
* Scheduler/console(RFID)/Relæ og programlogik (At få en applikation ud af det)
+
------------------
 +
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 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 udkommenteres 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

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.

#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