Port & Bitmanipulation

Størrelse: px
Starte visningen fra side:

Download "Port & Bitmanipulation"

Transkript

1 Port & Bit-manipulation i Arduino: Links til afsnit i dokumentet: Indledning Sammenhæng mellem Arduino pins og porte Portregistre Skriv_til_port / Variabel Læs port / SFR bitset bitclear bitwrite BitRead Bit(Position) Toggle Pin / Bit bittest, med eksempler Definering af variable-værdi Intern Pullup Switch Case Random bit _BV-Macro Eksempler bitread Normal Pin-manipulation Flere Eksempler Array Eksempel Boolsk Algebra: Bitwise AND Bitwise OR Bitwise XOR Bitwise NOT BitShift Boolske operatorer Logisk AND, OR, NOT Sammenligningsoperatorer < > osv Værdi af indbyggede konstanter Indledning: Hvordan er det lige, man kan arbejde med bits og bytes i programmeringssproget C?? Fx 0x30 or et med 0xB5 Eller hvordan laver man et tal om til Ascii tal?? Fx 0x08 or 0x30 = 38h = 8 Ascii Hidtil har vi arbejdet the Arduino way, som på mange måder er lidt hobby-præget. Med dette kompendium kommer vi til at arbejde direkte med registre. Side 1 af 22

2 Fx funktionen digitalwrite. Compileren koder det om til mange bytes, fordi der kaldes en skjult subrutine, der skal regne ud, hvilken bit i hvilken port, der skal skrives til. Det tager lang tid, - og kan godt gøres betydelig kortere!! Se fx linket her Arduino er født med en version af højniveausproget C, der er beregnet til at håndtere Boardets I/O-pins som individuelle pins med en digitalwrite-funktion. Det sker med en digitalwrite- eller digitalread-funktionen. Men i vores tekniske tilgang til uc er ved vi godt, at der bag disse pinnumre gemmer sig nogle porte, med portpins fra 0 til 7. Vi vil godt nogle gange direkte kunne håndtere en 8-bit port, eller direkte kunne manipulere enkelte portbit uden digitalwrite-funktionen. Både fordi det er praktisk, men også fordi det er betydelig hurtigere end med 1 pin ad gangen The Arduino way. Heldigvis er der i Arduino C compileren implementeret kommandoer, så det kan lade sig gøre. Det er både praktisk, men også betydelig hurtigere end The Arduino way. Eksempel, digitalwrite(): Den funktion, der kaldes med fx ordren digitalwrite(9,high); skal jo først beregne hvilken bit og i hvilken port, der skal sættes høj. Det tager tid!! Her sammenlignes ordrer, the arduino-way og med direkte portmanipulation: digitalwrite(9,high); digitalwrite(9,low); bitset(portb,1); bitclear(portb,1); bitwrite(portb,0,value); // funktionen tager 57 clock cycles // 57 clock cycles // 2 clock cycles // 2 clock cycles // 3 clock cycles Resultatet er ca. 25 gange hurtigere kode! Det understøttes af følgende kodeeksempler med grafer fra Scoopet: Først the Arduino way : int outpin = 2; void setup() // Use digital pin 2 as output Side 2 af 22

3 pinmode(outpin, OUTPUT); // sets the digital pin as output void loop() digitalwrite(outpin, HIGH); digitalwrite(outpin, LOW); // sets output high // sets output low Og grafen målt på pin 2 Dernæst samme program med direkte bit manipulation i et portregister. #define PD2 2 int outpin = 2; void setup() pinmode(outpin, OUTPUT); // Use digital pin 2 as output // sets the digital pin as output void loop() bitset(portd,2); bitclear(portd,2); // sets output bit 2 high // sets output bit 2 low Resultatet bliver en meget kortere puls. Mellemrummet mellem pulsene kommer af, at programmet jo skal loope til loopens start. Side 3 af 22

4 Ovenstående taget fra: Det ses også, at der indgår nogle andre koder, - bitset og bitclear - end det vi hidtil har set. Her ses et andet eksempel: void loop() PORTD = B ; PORTD = B ; PORTD = B ; PORTD = B ; PORTD = B ; PORTD = B ; PORTD = B ; PORTD = B ; PORTD = B ; PORTD = B ; Kilde: ( Ret god!!! ) Et andet problem kunne være følgende situation: digitalwrite(10, HIGH); digitalwrite(11, HIGH); PORTB = B1100 Resultatet vil være, at Pin 10 går høj flere mikrosekunder før Pin 11. Dette kan give problemer for tidsfølsomt ekstern digital elektronik. Her sættes begge Pins høj på nøjagtig same tid. Det ses, at der indgår nogle andre koder, end dem vi hidtil har set. Det er netop det, dette kompendium drejer sig om!! Sammenhængen mellem Arduinos Pinnumre og processorens Portnumre Side 4 af 22

5 En af de ting, der skal håndteres ved direkte portmanipulation er, at i Arduinoens verden er pin-numre forskellige fra uc-ens portbetegnelser. Uno ens Pinnumre er vist på Boardet. Og sammenhængen til controllerens porte og portpins er vist herunder: Her til højre ses pin- og portkonfigurationen på den benyttede processor, Atmega328. PD digital pins 7 til 0 (Port D) PB digital pins 13 til 8 (Port B) PC analog pins 5 til 0 (Port C) Sammenhængen vist på en lidt anden måde: Port B har pin B0 to B5 Port C har pin C0 to C5 Port D har Pin D0 to D7 Bemærk, at man normalt ikke kan bruge pin 0 og 1 som output fordi de bruges til kommunikation til PC-en! Portregistre: Se: Side 5 af 22

6 Først ses lidt på, hvordan portene og de interne styreregistre er opbygget i Atmega328P: Her et billede af opbygningen af en ports tilhørende registre og den interne bus. Kilde: Hver port i microcontrolleren og dets pins kontrolleres af 3 SFR, - special function registre, hvis navne også er forud-definerede variable i Arduino-C-sproget. DDR-registeret DataDirectionRegisteret bestemmer om de tilhørende pins er input eller output. Ved at skrive til PORT-registeret kontrollerer man om pins er høje eller lave. x kan være B, C eller D Og fra Input-registreret PIN-x kan et program læse om en input pin er Høj eller Lav. Kilde: Her en anden oversigt!! Et 0 i DDR-registeret bestemmer at denne pin er input En værdi skrevet til PORTx registeret sendes direkte ud på porten Input fra pins læses i PINx registeret Side 6 af 22

7 Dvs. At de tre I/O-port manipulation kommandoer er: DDRx PORTx PINx replacement for pinmode() replacement for digitalwrite() replacement for digitalread() PINx er egentlig et register kun beregnet til at læse en pin eller en port. Men den er lavet med XOR, dvs. at man ved at skrive et 1 til registeret, vil den tilhørende pin toggle. This uses a relatively little-known feature of the hardware, which actually has bit flipping builtin. The PIND register is normally used for input, i.e. for reading the state of a pin as an input signal. But you can also write to that register. When you do, it will be used to flip output pins, but only for the bits which were set to 1.?? It s essentially a built-in XOR. Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of DDRxn. I det følgende er vist eksempler på hvordan man kan manipulere en 8-bit port, en SFR mm: Skriv til hel Port eller SFR-register PORTD = B ; // = 255 PORTD = 0b ; // = 0 PORTD = 0x3A; // = 3Ah DDRD = 0b ; DDRD = 0x2A; DDRD = (1<<PORTD2); DDRD = DDRD B ; PORTC = 0x80; byte pinstate = B ; Eksempler på at skrive til hel port / SFRregister ( Kilde: 1 ) // Pin 2 i PortD er output. // Note# 2 // Set bit 7 only. // Definer en variabel Bemærk at man ikke kan kontrollere pin 0 og 1 i portd og samtidig bruge den serielle debugmonitor. Port-manipulation på normal vis Sæt pin 2 til 7 til output, uden at ændre pin 0 & 1, som er RX & TX Side 7 af 22

8 // Digital 0 to 7 set as outputs, then on/off using digitalwrite() void setup() for (int a=0; a<8; a++) pinmode(a, OUTPUT); void loop() for (int a=0; a<8; a++) digitalwrite(a, HIGH); for (int a=0; a<8; a++) digitalwrite(a, LOW); Eks. Med direkte manipulation: // Arduinokode til at køre knightrider, made by Kenneth!! void setup() DDRD = 0xFF; void loop() while (1) for(portd = 0x01; PORTD!= 0; PORTD <<= 1) // Skift alle bit 1 til delay(50); // venstre for (PORTD = 0x80; PORTD!= 0; PORTD >>= 1) // Skift 1 bit til højre delay(50); int delaytime = 333; byte portd_high = B ; //It's better coding style not to have any // hard-coded constants Side 8 af 22

9 byte portd_low = B ; void loop() PORTD = portd_high; delay(delaytime); PORTD = portd_low; delay(delaytime); //sets pins High //wait //sets pins to Low //waits another 333 ms void binarycount() for (int z=0; z<256; z++) PORTD = z; delay(100); PORTD=0; Array Eksempel // Example 43.5 // tronixstuff.com/tutorials > chapter 43 // John Boxall - October 2011 // inputs and outputs byte segments[] = B , B , B , B , B , B , B , B , B , B ; // digital pins 7~0 connected to display pins dp,a~g void setup() DDRB = B ; // set PORTB (digital 13~8) to inputs DDRD = B ; // set PORTD (digital 7~0) to outputs void disp(int z) PORTD = segments[z]; void loop() disp(pinb); Side 9 af 22

10 delay(100); // Fra: Læs hel Port: Tal=PIND; En port læses fra dets PIN-register. Læs hele PORTD fra PIN-registeret til Variabel Erstatning for at bruge funktionen digitalread() 8 gange. if(pind == B ) do something char my_var = 0; my_var = PIND; Læs Port D til variable. Manipuler et enkelt bit i en SFR eller i en variabel: bitset Forklaring Bemærk: Bit tælles fra bit 0 til 7 Syntax: I variable x sættes et 1 i en given bitposition bitset(x, bitposition) bitset(portd, 4); bitset(tccr1b, CS12); bitset(tccr1b, CS10); byte pinstate = B ; bitset(pinstate, 2); Set bit 4 i portd I SFR TCCR1B i timeren sættes bit CS12 og CS10 //sæt 3. pin høj //pinstate = B Virker også på selvdefinerede variable. bitclear bitclear(x, bitposition) bitclear(portd, 4); I variable x cleares en given bitposition Clr bit 4 i portd Side 10 af 22

11 byte pinstate = B ; bitclear(pinstate, 2); Initializer alle pins til HIGH Sæt den tredie pin LOW pinstate = B bitwrite bitwrite(x, bitposition, value) bitwrite(portb, 3, 1); bitwrite(portb, 3, 0); byte pinstate= 0; bitwrite(pinstate, 0, HIGH); bitwrite(pinstate, 3, HIGH); bitwrite(pinstate, 0, LOW); Skriv 0 eller 1 i bitpos. i variablen x. Sæt bit 3 i portb høj Clear bit 3 i portb //initializer alle pins til LOW (B ) //pinstate = B //pinstate = B //pinstate = B bitread(x, n) Syntax:var = bitread(x, bitposition) Variablen var får værdien 0 eller 1 afhængig af en given bitposition i tallet x ( bit 0 til 7 fra højre ) byte a = bitread(x, 5); if (bitread(porte,4) == LOW) do if (bitread(porte,4 bitread(2,1); bitread(4,1); Læs bit 5 i reg x Hvis bit 4 i Port E er lav, så Hvis læste bit er sand, så Giver 1 fordi 2 2 er binær 10 Giver 0. byte b = 0x55; for (int i = 0; i < 8; i++) Serial.println(bitRead(b, i)); BitRead eksempel Sæt en pin / portbit høj eller lav // Led0 til 7 mangler at blive defineret Side 11 af 22

12 void loop() for (int i=0; i<256; i++) digitalwrite(led0, bitread(i, 0)); digitalwrite(led1, bitread(i, 1)); digitalwrite(led2, bitread(i, 2)); digitalwrite(led3, bitread(i, 3)); digitalwrite(led4, bitread(i, 4)); digitalwrite(led5, bitread(i, 5)); digitalwrite(led6, bitread(i, 6)); digitalwrite(led7, bitread(i, 7)); delay(time); bit(x) bit(bitposition) PORTD = bit(4); PORTD ^= bit(4); I PORTD Or-es Bit4 med 1 Bit 4 XOR-es med 1 // XOR, => Toggle #define LEDPIN 4 void setup() DDRD = bit(ledpin); bit(0) er 1, bit(1) er 2, bit(2) er 4, osv. 3 void loop() PORTD ^= bit(ledpin); Delay(100); Toggle Pin eller bit if (bitread(x, 4) == 0) bitset(x, 4); // toggle bit 4 i variablen x // toggle bit 4 i variablen x 3 Side 12 af 22

13 else bitclear(x, 4); X = X ^ bit(4); X ^= bit(4); // flip bit 4 i x // flip bit 4 i x Toggle Pin-eksempel - #define LEDPIN 4 // toggle port bit void setup () pinmode(ledpin, OUTPUT) byte onoff; void loop () if (onoff == 0) onoff = 1; else onoff = 0; digitalwrite(ledpin, onoff); // The Arduino way delay(100); PINx 4 PIND = bit(4); PIND = bit(4); Flip bit 4 i port D Set igen, = clear!! Bit test: Teste om bit er høj eller lav If bit_is_set / clear if(bit_is_set(tifr1,ocf1a)) flag = 1; Do something Tjekker om bit OCF1A i register TIFR1 er sat! if(bit_is_clear(tifr1,ocf1a)) Tjekker om register, bit er Side 13 af 22

14 flag = 1; Do something // Send a byte over the IR LED void send_byte(int bits) for (int i = 7; i >= 0; i--) if (BIT_IS_SET(i, bits)) WriteOne();Do something else WriteZero();Do something else Eksempel på subrutine. // Kilde: # 5 val = bit_is_clear(pinb, BUTTON_PIN) buttonstate = bit_is_clear(pinb, BUTTON_PIN); if(bit_is_clear(pind,0)) // hvis pin D0 er lav så do! Tjekker om register, bit er 0. read input value and store it in val Tjek om Button på PortD.0 er trykket, dvs. lav if (PINB == 0x01) do something; Tjek om PortB er lig 0b if (PINC & 0x01) do something; Definering af værdier i en variabel Tal = 0b ; Tal =0x94; Tal = 148; Tal-typen skal defineres evt. på forhånd. Binær Hex Decimal Tal = bit(3); // Bit 3 i tallet er sat, = Side 14 af 22

15 // ( Bit 0 til 7 fra højre Tal = (1 << n); Tal = ((1<<7) (1<<4) (1<<2)); byte a = bit(0); byte b = bit(2); // 4 i decimal 6 // Tal = værdi, der kun har et 1 på bit n s plads. Declare variable "a" and assigns a number with the bit 0 set to 1, (1 in decimal) (bit can be from 0 to 7) Intern Pull Up på input-pins: Internt kan man forbinde inputpins til en 20 K Pullup-modstand. DDRD = B ; PORTD = B ; // D2 og D3 er OUTPUTs // turn on pull-ups for D0 og D1 pinmode(pin, INPUT); // set pin to input digitalwrite(pin, HIGH); // turn on pullup resistors pinmode(2, INPUT_PULLUP); // Input and pullup!! PORTD = 0b ; 0,1,2 // Pull-ups enabled in the pins // and 3 and pull-ups disabled in // pins 4,5,6 and 7 D0 = Arduino-Pin 0 D2 = Arduino-Pin 2 D3 = Arduino-Pin 3 Kilde # 7 Her et billede af pull-up modstande for pins defineret som input Side 15 af 22

16 Kilde # 8 Her endnu et billede på, hvordan man kontrollerer pins vha. registre. Switch case: pins = PINB & 0x7; // read pins 8/9/10 switch (pins) case 0: // no switches set break; case 1: switch1_func(); break; case 2: switch2_func(); break; case 3: // switches one and two. switch1_func(); switch2_func(); case 4: // switch 3 makes 1&2 into "don't care" case 5: case 6: case 7: switch3_func(); break; Random 8 Side 16 af 22

17 void loop() int i=random(4); digitalwrite(ledpin[i], HIGH); while(digitalread(buttonpin[i]) == LOW) //do nothing digitalwrite(ledpin[i], LOW); Random fra 0 til 3 randnumber = random(300); random number from 0 to 299 randnumber = random(10, 20); from 10 to 19 Se: _BV macroen: Man kan angive en enkelt pin ved at bruge en indbygget makro, _BV. De øvrige bits efterlades uændret. Kommandoen _BV(x) virker som (1 << x) _BV() (_BV står for for Bit-Value) PORTD = _BV(3); PORTD &= ~_BV(3); PORTC = _BV(0); PORTC &= ~(_BV(1)); PORTC ^= _BV(7); pin, bit 3 i port D sættes high Pin Low. Set bit 0 only. Clear bit 1 only. Toggle bit 7 only. PORTC = (_BV(0) _BV(2); Set bits 0 og 2 Boolsk algebra Se fx: The Bitmath Tutorial in the Playground Bitwise AND int a = 92; // i binær: int b = 101; // i binær: int c = a & b; // , eller 68 i decimal. En af de mest brugte funktioner af bitwise AND er at udvælge bestemte bit fra et tal. Det kaldes ofte for Masking. Side 17 af 22

18 Eksempel. Man ønsker at manipulere mindst betydende bit i variablen x, og gemme resultatet i variablen y. Det kan gøres med følgende kode: int x = 5; // binary: 101 int y = x & 1; // now y == 1 x = 4; // binary: 100 y = x & 1; // now y == 0 PORTC &= 0x01; // Bitwise And alle bit i PortC // med 01h PORTC &= ~0x01; // Clear bit 0 only. // ~ betyder inverter, derfor And-es // portc med 0b Bitwise OR Bitwise OR bruges ofte til at sikre sig, at en given bit er sat til 1. int a = 92; // in binary: int b = 101; // in binary: int c = a b; // , or 125 in decimal. b = a 1; // laveste bit i variablen a sættes til 1. PORTC = 0x01; PORTC = 0x80; // Clear bit 0 only. // Set bit 7 only. Bitwise XOR ^ En anden måde at se på bitwise XOR er, at hver bit i resultatet er 1 hvis input-bittene er forskellige, og 0 hvis de er ens. EX-OR operatoren ^ bruges ofte til at toggle nogle af bittene i et udtryk int x = 12; // binary: 1100 int y = 10; // binary: 1010 int z = x ^ y; // binary: 0110, or decimal 6 y = x ^ 1; PORTC ^= 0x01; // toggle the lowest bit in x // Toggle bit 0 only. Bitwise NOT Bitwise NOT operatoren er ~. Bitwise NOT ændrer hver bit til det modsatte Side 18 af 22

19 ~ int a = 103; // binary: int b = ~a; // binary: = -104 Bemærk: Det negative tal -104 er et resultat af, at man i et heltal, Integer bruger mest betydende bit som sign bit, ( fortegnsbit ). Hvis det er 1, er tallet negativ. Denne måde at kode positive og negative tal på hedder two's complement. Bemærk, at for en given heltal x, ~x er det same som -x-1. Bit Shift Operators Der er 2 bit shift operatorer i C++: left shift operator << og right shift operator >>. Disse operatorer bevirker, at alle bit i den venstre operand skiftes til venstre eller til højre et antal gange, specificeret i den højre operand. int a = 5; // binary: int b = a << 3; // binary: , = 40 i dec. int c = b >> 3; // binary: , = 5 igen. Når man skifter en værdi x, y gange, (x << y), vil de bit, der ryger ud over venstre kant tabes. int a = 5; // binary: int b = a << 14; // binary: den første 1 i 101 forsvinder. Hvis man skifter x til højre med y bit (x >> y), og den mest betydende bit i x er 1, afhænger resultatet af hvilken data-type, x er. Hvis det er af typen int, er den højeste bit fortegnsbit, sign bit, og bestemmer om x er negativ eller positiv. I dette tilfælde kopieres signbittet ind i de lavere bit. int x = -16; // binary: int y = x >> 3; // binary: Dette kaldes sign extension, og er ofte ikke hvad man ønsker. I stedet kan man bruge typen unsigned int. int x = -16; // binary: int y = unsigned(x) >> 3; // binary: int x = 1; // binary: x <<= 3; // binary: x = 3; // binary: because 3 is 11 in binary x &= 1; // binary: x ^= 4; // binary: toggle using bit mask 100 Side 19 af 22

20 x ^= 4; // binary: toggle with mask 100 again Der er ingen kortere måde at håndtere bitwise NOT operator ~; Her er det nødvendig at skrive: x = ~x; // toggle all bits in x and store back in x Bitwise operators versus boolean operators Bitwise AND operatoren & er ikke det samme som boolsk AND. Bitwise & opererer uafhængig på de enkelte bit i operanden. Herimod konverterer && begge operanter til en boolsk værdi, (true==1 eller false==0), og returnerer derefter enten et enkelt true eller false værdi. Derimod er 4 && 2 == true, og true er numerisk lig 1. Dette er fordi 4 ikke er 0, og 2 ikke er nul, så begge er boolsk lig true. Logisk AND, && if (digitalread(2) == HIGH && digitalread(3) == HIGH) Do Something... Logisk OR, if (x > 0 y > 0) //... Logisk NOT,! if (!x) //... Læs to pins, og udfør hvis begge er høje. Sandt hvis enten x eller y er sand. Sand hvis x er falsk, dvs. hvis x er 0. Sammenlignings-operatorer: x == y (x is equal to y) x!= y (x is not equal to y) x < y (x is less than y) x > y (x is greater than y) x <= y (x is less than or equal to y) x >= y (x is greater than or equal to y) En oversigt over, hvordan de forskellige test-operatorer skrives. Større end, mindre end, >, < If-test Side 20 af 22

21 if (somevariable > 50) // do something here if (x >= 12) digitalwrite(ledpin, 1); Test størrelsen af en variabel. Hvis testen er sand, udføres programmet mellem og Her er programmet kun på 1 linje. Flere kode-eksempler int ledpin = 13; byte portd_high = B ; byte portd_low = B ; void setup() pinmode(ledpin, OUTPUT); DDRD = B ; void loop() for(int i=0; i<10; i++) digitalwrite(ledpin, HIGH); PORTD = portd_high; delay(i); digitalwrite(ledpin, LOW); PORTD = portd_low; delay(10-i); for(int i=10; i>0; i--) digitalwrite(ledpin, HIGH); PORTD = portd_high; delay(i); digitalwrite(ledpin, LOW); PORTD = portd_low; delay(10-i); Side 21 af 22

22 Værdi af indbyggede konstanter #define CS10 0 #define CS11 1 #define CS12 2 #define WGM12 3 #define WGM13 4 #define ICES1 6 #define ICNC1 7 Kilder: Side 22 af 22

Løkkestrukturer mm. Trykknap: Button, Se eksempler / Digital / Button. Decision: If: Version 05/ Arduino, Loops, løkker, programfunktioner mm.

Løkkestrukturer mm. Trykknap: Button, Se eksempler / Digital / Button. Decision: If: Version 05/ Arduino, Loops, løkker, programfunktioner mm. Arduino, Loops, løkker, programfunktioner mm. Links til følgende i dokumentet: Trykknap If, If else, If Else If While, Do While For-Loop Break, PWM Serial Read Funktioner og subrutinerr Switch Case Random

Læs mere

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor.

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor. Simple kontakter Accelorometer Example sensors Lysfølsomme modstande RFID reader & tags Temperaturfølsomme modstande Flex Sensor Ultralyds afstandsmåler Piezo Pressure/vibration Piezo Sound/buzzer Peltier

Læs mere

Fra programmering til mikroprocessor

Fra programmering til mikroprocessor Programmering for begyndere Brug af Arduino Fra programmering til mikroprocessor EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Programmerings kursus Sidste gang (Introduktion)

Læs mere

Løkkestrukturer mm. Trykknap: Button, Se eksempler / Digital / Button. Decision: If: Version 08/ Arduino, Loops, løkker, programfunktioner mm.

Løkkestrukturer mm. Trykknap: Button, Se eksempler / Digital / Button. Decision: If: Version 08/ Arduino, Loops, løkker, programfunktioner mm. Arduino, Loops, løkker, programfunktioner mm. Links til følgende i dokumentet: Trykknap If, If else, If Else If While, Do While For-Loop PWM Serial Read Funktioner og subrutinerr Switch Case Random number,

Læs mere

Start på Arduino og programmering

Start på Arduino og programmering Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget

Læs mere

Arduino Programmering

Arduino Programmering Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået

Læs mere

Internt interrupt - Arduino

Internt interrupt - Arduino Programmering for begyndere Brug af Arduino Internt interrupt - Arduino - Afslutning EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Intern interrupt Jeg vil rydde lidt op. Her er nogle punkter vil har glemt

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen

Læs mere

Delay(100); Man skriver fx blot delay(100); for at få Microcontrolleren til at vente 100 ms inden programmet fortsætter.

Delay(100); Man skriver fx blot delay(100); for at få Microcontrolleren til at vente 100 ms inden programmet fortsætter. Funktionen delay() Funktionen delay() er ofte praktisk at bruge i et program i Arduino-verdenen. Man skriver fx blot delay(100); for at få Microcontrolleren til at vente 100 ms inden programmet fortsætter.

Læs mere

ECE 551: Digital System * Design & Synthesis Lecture Set 5

ECE 551: Digital System * Design & Synthesis Lecture Set 5 ECE 551: Digital System * Design & Synthesis Lecture Set 5 5.1: Verilog Behavioral Model for Finite State Machines (FSMs) 5.2: Verilog Simulation I/O and 2001 Standard (In Separate File) 3/4/2003 1 ECE

Læs mere

ARDUINO PROGRAMMERING

ARDUINO PROGRAMMERING ARDUINO PROGRAMMERING Teknologisk Institut Opgaver i programmering af Arduino Indholdsfortegnelse Kapitel 1... 2 Arduino Uno mikrokontroller... 2 Digitalt signal... 3 Analogt signal... 3 Arduino Uno Specifikationer...

Læs mere

Intro til AVR. Mads Pedersen, OZ6HR mads@oz6hr.dk

Intro til AVR. Mads Pedersen, OZ6HR mads@oz6hr.dk Intro til AVR Mads Pedersen, OZ6HR mads@oz6hr.dk Projektidé Brug en AVR-microcontroller Mål temperatur vha. temperatursensor Vis på display Send til computer og vis temperatur Slide 2 Plan 27/10-2005:

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se

Læs mere

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1 Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words

Læs mere

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU

PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU PARALLELIZATION OF ATTILA SIMULATOR WITH OPENMP MIGUEL ÁNGEL MARTÍNEZ DEL AMOR MINIPROJECT OF TDT24 NTNU OUTLINE INEFFICIENCY OF ATTILA WAYS TO PARALLELIZE LOW COMPATIBILITY IN THE COMPILATION A SOLUTION

Læs mere

Bits, bit operationer, integers og floating point

Bits, bit operationer, integers og floating point Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter

Læs mere

Basic statistics for experimental medical researchers

Basic statistics for experimental medical researchers Basic statistics for experimental medical researchers Sample size calculations September 15th 2016 Christian Pipper Department of public health (IFSV) Faculty of Health and Medicinal Science (SUND) E-mail:

Læs mere

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Interrupt - Arduino EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Interrupts Programmeringskursus Genbrug Interrupts Betyder blot at man afbryder

Læs mere

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003 Side 1 af 8 Dato: 14-05-2003 Til Sigurd Som aftalt vil jeg her fremsende vores program til vores 80C535 kit og display. Det gik jo ud på at vi skulle starte med at få den til at intialiserer displayet,

Læs mere

Opera Ins. Model: MI5722 Product Name: Pure Sine Wave Inverter 1000W 12VDC/230 30A Solar Regulator

Opera Ins. Model: MI5722 Product Name: Pure Sine Wave Inverter 1000W 12VDC/230 30A Solar Regulator Opera Ins Model: MI5722 Product Name: Pure Sine Wave Inverter 1000W 12VDC/230 30A Solar Regulator I.Precautions 1. Keep the product away from children to avoid children playing it as a toy and resultinginpersonalinjury.

Læs mere

Arduino kursus lektion 3:

Arduino kursus lektion 3: Arduino kursus lektion 3: I denne lektion skal vi lave få en diode til at fade op og ned! Herefter skal denne diode bruges sammen med en lysføler til at lave en smart lysfølsom diode som selv justere lyset

Læs mere

Linear Programming ١ C H A P T E R 2

Linear Programming ١ C H A P T E R 2 Linear Programming ١ C H A P T E R 2 Problem Formulation Problem formulation or modeling is the process of translating a verbal statement of a problem into a mathematical statement. The Guidelines of formulation

Læs mere

Alt elektronik heri er købt via http://dx.com, og arduino udviklingssoftware er hentet fra http://arduino.cc.

Alt elektronik heri er købt via http://dx.com, og arduino udviklingssoftware er hentet fra http://arduino.cc. Få-tiden-til-at-gå-[DIGITAL]-ur =============================== Copyright 2013, Richard Jørgensen. Alle ophavsretlige rettigheder frafaldet 2015. (Kopier og brug som du har lyst.) Forord: ===== Denne vejledning

Læs mere

Programmering for begyndere Lektion 2. Opsamling mm

Programmering for begyndere Lektion 2. Opsamling mm Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger

Læs mere

Hvorfor & Hvordan lære Elever At programmere Arduinoer

Hvorfor & Hvordan lære Elever At programmere Arduinoer Hvorfor & Hvordan lære Elever At programmere Arduinoer Jens Dalsgaard Nielsen JDN / No.1 Teknologi konkurrencen IPADs, mobilos, HTC'er Medicentre JDN / No.2 IPAD, Iphone, HTC,... 1000 Mhz 8000000 kbyte

Læs mere

LCD intro. LCD Character display-intro. Redigeret 4/6-2019

LCD intro. LCD Character display-intro. Redigeret 4/6-2019 LCD Character display-intro Parallel interface, Forbindelsesdiagram, Ram & Rom-struktur, Biblioteksfunktioner til at styre LCD-skærmen, Lcd.Print vs Lcd.Write, Selvdefinerede karakterer, herunder æ, ø

Læs mere

Boolsk algebra For IT studerende

Boolsk algebra For IT studerende Boolsk algebra For IT studerende Henrik Kressner Indholdsfortegnelse 1 Indledning...2 2 Logiske kredsløb...3 Eksempel:...3 Operatorer...4 NOT operatoren...4 AND operatoren...5 OR operatoren...6 XOR operatoren...7

Læs mere

Arduino opgaver. I dette dokument er der inspiration til en række programmerings-opgaver til Arduino.

Arduino opgaver. I dette dokument er der inspiration til en række programmerings-opgaver til Arduino. : Hyperlinks til forskellige opgaver: #Binære_tal, #Knightrider, #Dot_Matrix-display, #Fra_Debug_vindue_til_Ardu, #Hej_mor, #Pernille, #Interrupts, #Keypad, #LCD, #Morse, #Potentiometer, #RF_ID, #RGB,

Læs mere

Hvorfor & Hvordan lære. at programmere Arduinoer

Hvorfor & Hvordan lære. at programmere Arduinoer Hvorfor & Hvordan lære Jens Dalsgaard Nielsen at programmere Arduinoer JDN / No.1 http://es.aau.dk/staff/jdn/edu/courses/14-2/ars mine slides alle kodeeksempler Et C/arduino kursus http://es.aau.dk/staff/jdn/edu/courses/14-2/imperativ/

Læs mere

Modeljernbane elektronik for begyndere...og dem der vil igang med at bygge deres egne dekodere

Modeljernbane elektronik for begyndere...og dem der vil igang med at bygge deres egne dekodere 2015 Modeljernbane elektronik for begyndere...og dem der vil igang med at bygge deres egne dekodere Dette dokument giver en grundlæggende indføring i standard elektronik komponenter og deres virkemåde,

Læs mere

const int disponibel_10= 10; const int disponibel_11= 11; const int disponibel_12= 12; const int blinkled = 13; // pin 13 er LED på NANO

const int disponibel_10= 10; const int disponibel_11= 11; const int disponibel_12= 12; const int blinkled = 13; // pin 13 er LED på NANO Styring_af_analog_repeater_OZ1LN_07-04-2018_v_1_07 device Arduino NANO fra v 1.06_j kræves Starttid bærebølge for valid pilottone ved start fra v 1.06_j kræves ResetTid uden bærebølge ved genstart efter

Læs mere

#AlleKanKode. Lektion 4 - Kontrol flow

#AlleKanKode. Lektion 4 - Kontrol flow #AlleKanKode Lektion 4 - Kontrol flow Disclaimer / Ansvarsfraskrivelse Alt du deler og siger mm bliver optaget. Lad være med at dele privat oplysninger, adgangskoder, kreditkort oplysninger osv. Andre

Læs mere

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato: Side 1 af 13 Dato: 03-06-03 Til Sigurd Som aftalt får du nu tilbygningen til 80C535 kittet, keyboard og programmet med programopdatering. Den sidste opgave her, gik så ud på at tilslutte et tastatur, og

Læs mere

Boolsk algebra For IT studerende

Boolsk algebra For IT studerende Boolsk algebra For IT studerende Henrik Kressner Indholdsfortegnelse Indledning...3 Logiske kredsløb...4 Eksempel:...4 Operatorer...4 NOT operatoren...5 AND operatoren...5 OR operatoren...6 XOR operatoren...7

Læs mere

Arduino opgaver Teknologi

Arduino opgaver Teknologi : I dette dokument er der inspiration til en række programmerings-opgaver til Arduino. Opgaverne bliver i nogen grad sværere og sværere op gennem opgavenumrene. Opgaverne kan laves ved at opbygge kredsløb

Læs mere

Arduino Programmering

Arduino Programmering Microcontroller-programmering med Arduino I teknologi skal vi lære at lave programmer til en microcontroller for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal

Læs mere

//--------------------------------- Definition af porte og funktioner -------------------------

//--------------------------------- Definition af porte og funktioner ------------------------- Temeraturmåler (C-program).txt // Initialiserings-sekvens #include #pragma model=medium #pragma code=0x0000 #pragma xdata=0x4000 #pragma asm=on #pragma parameters=register //#define display P4

Læs mere

Verilog HDL. Presented by: Amir Masoud Gharehbaghi

Verilog HDL. Presented by: Amir Masoud Gharehbaghi Verilog HDL Presented by: Amir Masoud Gharehbaghi Email: amgh@mehr.sharif.edu Design Hierarchy Design Specification & Requirements Behavioral Design Register Transfer Level (RTL) Design Logic Design Circuit

Læs mere

danske karakterer på Lcd

danske karakterer på Lcd Arduino og LCD ( 16/3-13 ) Når Arduinoen kobles til et LCD-display, kan man ikke umiddelbart skrive de danske karakterer æ, ø og å. Bag hver karakterplads i LCD-en er der en 8-bit RAM. Hvis der skrives

Læs mere

CANSAT & ARDUINO step by step

CANSAT & ARDUINO step by step CANSAT & ARDUINO step by step Jens Dalsgaard Nielsen SATLAB Aalborg Universitet Danmark jdn@space.aau.dk 1/45 Arduino CANSAT - MÅL At måle ved hjælp af sensor temperatur, tryk, acceleration, CO2, lys,...

Læs mere

Engineering of Chemical Register Machines

Engineering of Chemical Register Machines Prague International Workshop on Membrane Computing 2008 R. Fassler, T. Hinze, T. Lenser and P. Dittrich {raf,hinze,thlenser,dittrich}@minet.uni-jena.de 2. June 2008 Outline 1 Motivation Goal Realization

Læs mere

Chapter. Information Representation

Chapter. Information Representation Chapter 3 Information Representation (a) A seven-bit cell. Figure 3. Figure 3. (Continued) (b) Some possible values in a seven-bit cell. Figure 3. (Continued) 6 8 7 2 5 J A N U A R Y (c) Some impossible

Læs mere

CANSAT & ARDUINO step by step

CANSAT & ARDUINO step by step CANSAT & ARDUINO step by step Jens Dalsgaard Nielsen SATLAB Aalborg Universitet Danmark jdn@space.aau.dk 1/51 Arduino CANSAT - MÅL At måle ved hjælp af sensor temperatur, tryk, acceleration, CO2, lys,...

Læs mere

Hvorfor & Hvordan lære Elever At programmere Arduinoer

Hvorfor & Hvordan lære Elever At programmere Arduinoer Hvorfor & Hvordan lære Elever At programmere Arduinoer Jens Dalsgaard Nielsen JDN / No.1 Teknologi konkurrencen IPADs, mobilos, HTC'er Medicentre JDN / No.2 IPAD, Iphone, HTC,... 1000 Mhz 8000000 kbyte

Læs mere

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester

INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen. I3PRG3 + I3DTM3 + I3ISY1-3. semester INGENIØRHØJSKOLEN I ÅRHUS Elektro- og IKT-afdelingen Side 1 af 7 Eksamenstermin: DECEMBER 2003 / JANUAR 2004 Varighed: 4 timer - fra kl. 9.00 til kl. 13.00 Ingeniørhøjskolen udleverer: 3 omslag samt papir

Læs mere

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering... Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering... 3 Kildekoden... 4 Variabler... 4 Setup... 4 Loop... 4 Indledning

Læs mere

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Display EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Sidste gang havde vi

Læs mere

Arduino. Processoren på kittet er fra Atmel, af AVR-familien, og hedder Atmega 328.

Arduino. Processoren på kittet er fra Atmel, af AVR-familien, og hedder Atmega 328. kompendium. Dette kompendium er ikke et forsøg på at være fyldestgørende, for at komme i gang med at programmere, men er en samling af informationer og tips. Og der er en række links til materialer på

Læs mere

TinkerCad - Arduino simulator

TinkerCad - Arduino simulator TinkerCad - Arduino simulator Dokument fra H.C.Ørsted Gymnasiet, delt i HTX-Strømspassergruppen. ( Lidt modificeret / Valle ) På tinkercad.com kan man både arbejde med 3D emner, men også elektroniske kredsløb.

Læs mere

Netværk & elektronik

Netværk & elektronik Netværk & elektronik Oversigt Ethernet og IP teori Montering af Siteplayer modul Siteplayer teori Siteplayer forbindelse HTML Router (port forwarding!) Projekter Lkaa Mercantec 2009 1 Ethernet På Mars

Læs mere

Vina Nguyen HSSP July 13, 2008

Vina Nguyen HSSP July 13, 2008 Vina Nguyen HSSP July 13, 2008 1 What does it mean if sets A, B, C are a partition of set D? 2 How do you calculate P(A B) using the formula for conditional probability? 3 What is the difference between

Læs mere

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende Changes for Rottedatabasen Web Service The coming version of Rottedatabasen Web Service will have several changes some of them breaking for the exposed methods. These changes and the business logic behind

Læs mere

uprocessorens hardware

uprocessorens hardware uprocessorens hardware 8080 Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed gemmes i en række registre. Når et tal skal hentes eller

Læs mere

Noter til C# Programmering Selektion

Noter til C# Programmering Selektion Noter til C# Programmering Selektion Sætninger Alle sætninger i C# slutter med et semikolon. En sætning kontrollerer sekvensen i programafviklingen, evaluerer et udtryk eller gør ingenting Blanktegn Mellemrum,

Læs mere

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater Design by Contract Design and Programming by Contract Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere

Læs mere

Indholdsfortegnelse:

Indholdsfortegnelse: Dataopsamling Klaus Jørgensen Gruppe. Klaus Jørgensen, Jacob Clausen Og Ole Rud Erhvervs Akademi Fyn Allegade 79 Odense C 5000 fra d 2/12-02 til d 20/12-02 Vejleder: SKH. Forord: Denne rapport omhandler

Læs mere

! "# $$ &'()*"* +*, & &"*0* & "# % %- %

! # $$ &'()** +*, & &*0* & # % %- % !"! "# $$ & &'()*"* +*, &- & &"./+0 & &"*0* & & & 1 2 ()))))$$" "# - " # $!&!!" 34 3((5(4 6()))))5 3((5# 7())))) 4 3((58 43((58 3((5#9! 3((5#4 3((584 6 9 # '"!&()!" * " 49 9-3 :; & Private Sub Workbook_Open()

Læs mere

// inkluder library kode: #include <LiquidCrystal.h> #include <Serial.h> // Initialiser display LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// inkluder library kode: #include <LiquidCrystal.h> #include <Serial.h> // Initialiser display LiquidCrystal lcd(12, 11, 5, 4, 3, 2); /* OZ1HJR Program til styring af Mercury Motor SM-42BYG011-25 (ROB-09238) med EasyDriver V4.4 (ROB-10267). Når MS1 og MS2 begge er High, er et step (1.8 grader) opløst i 8 mikrostep. Et mikrostep svarer

Læs mere

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet) Efterår 2009 1 Talrepræsentation På maskinkodeniveau (Instruction Set Architecture Level) repræsenteres ordrer og operander ved bitfølger

Læs mere

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4. APPETITVÆKKEREN OZ6YM, Palle A. Andersen Efteråret 2017 Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4. DEMO-video

Læs mere

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET Mandag den 14 januar 2013 I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET OZ1QK Knud Krogsgaard Jensen 1 ARDUINO I 2 C - BUSSEN ELLER?? Plan for I aften: Jeg siger noget i 10 minutter I fortæller lidt om

Læs mere

Brug af digitale ind og udgange

Brug af digitale ind og udgange Programmering for begyndere Brug af Arduino Programmeringskursus Brug af digitale ind og udgange Oversigt over aftenen Digitale ind- og udgange Det er der ikke så meget i: Digitale indgange kan tænde og

Læs mere

Under 'Microsoft Block Editor', klik 'New project' for at åbne block editor-værktøjet.

Under 'Microsoft Block Editor', klik 'New project' for at åbne block editor-værktøjet. 8 3. Nedtælling Nu skal du lave en nedtæller. Det er en god måde at lære variabler på og hvordan du skal kode micro:bit til at gøre dét, du vil have, at den skal vise. Du skal bruge: 1 x BBC micro:bit

Læs mere

Analoge indgange og A/D konvertering. Analoge udgange

Analoge indgange og A/D konvertering. Analoge udgange Programmering for begyndere Brug af Arduino Programmeringskursus Analoge indgange og A/D konvertering Analoge udgange Knud Krogsgaard Jensen OZ1QK Oversigt Oversigt over i aften: A/D konvertering iterations

Læs mere

Sådan forbindes Arduinoen via et fumlebræt til ATTiny45 chippen.

Sådan forbindes Arduinoen via et fumlebræt til ATTiny45 chippen. Arduino software: https://www.arduino.cc/en/main/software Klaus modeltog, det levende hus: http://www.moppe.dk/levhusel.html TV simulation: http://www.herberts-n-projekt.de/basteleien-1/belebtes-haus/

Læs mere

Online kursus: Programming with ANSI C

Online kursus: Programming with ANSI C Online kursus 365 dage DKK 1.999 Nr. 90198 P ekskl. moms Denne kursuspakke giver dig et bredt kendskab til sproget C, hvis standarder er specificeret af American National Standards Institute (ANSI). Kurserne

Læs mere

up/ansi Eksamensspørgsmål

up/ansi Eksamensspørgsmål Side af 3 Dato: 26-06-2003 up/ansi Eksamensspørgsmål Spørgsmål : Erklæring af variable Skal placeres i første blok kan også placeres blandt erklæringer / definitioner af funktioner, dette er dog IKKE klogt.

Læs mere

BASAL ARDUINO SÅDAN KOMMER DU IGANG MED ARDUINO, OG FORBEREDER DIG TIL KURSERNE MBHOBBY.COM AFHOLDER.

BASAL ARDUINO SÅDAN KOMMER DU IGANG MED ARDUINO, OG FORBEREDER DIG TIL KURSERNE MBHOBBY.COM AFHOLDER. BASAL ARDUINO SÅDAN KOMMER DU IGANG MED ARDUINO, OG FORBEREDER DIG TIL KURSERNE MBHOBBY.COM AFHOLDER. DETTE SELVSTUDIE ER UDVIKLET AF MARTIN GERTZ BECH, OG MÅ UDELUKKENDE BENYTTES TIL PERSONLIGE IKKE KOMMERCIELLE

Læs mere

Indholdsfortegnelse :

Indholdsfortegnelse : Udarbejdet af Kasper jensen EUC-Syd 4ES 10-3-2001 Indholdsfortegnelse : Indholdsfortegnelse :...2 Mikroprocessor general :...3 Mikroprocessors funktion :...3 AT89C4051 :...3 Programmering :...3 Assambler

Læs mere

Varenr.: 553925 90 højre 553926 90 venstre 554027 90º højre med coating 554028 90º venstre med coating

Varenr.: 553925 90 højre 553926 90 venstre 554027 90º højre med coating 554028 90º venstre med coating DK GH Skiftespor Varenr.: 55395 90 højre 55396 90 venstre 55407 90º højre med coating 55408 90º venstre med coating 553991 60º højre 553995 60º venstre 551058 60º højre med coating 551059 60º venstre med

Læs mere

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at beskrive et forløb. Det kan fx være en microcontrollers programafvikling.

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at beskrive et forløb. Det kan fx være en microcontrollers programafvikling. Flowchart Et flowchart bruges til grafisk at beskrive et forløb. Det kan fx være en microcontrollers programafvikling. Der findes nogle gode programmer til at tegne flowcharts med, men de skal købes. Fx

Læs mere

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension

DK - Quick Text Translation. HEYYER Net Promoter System Magento extension DK - Quick Text Translation HEYYER Net Promoter System Magento extension Version 1.0 15-11-2013 HEYYER / Email Templates Invitation Email Template Invitation Email English Dansk Title Invitation Email

Læs mere

Arduino opgaver. I dette dokument er der inspiration til en række programmerings-opgaver til Arduino.

Arduino opgaver. I dette dokument er der inspiration til en række programmerings-opgaver til Arduino. : Hyperlinks til forskellige opgaver: #Binære_tal, #Knightrider, #Dot_Matrix-display, #Fra_Debug_vindue_til_Ardu, #Hej_mor, #Pernille, #Interrupts, #Keypad, #LCD, #Morse, #Potentiometer, #RF_ID, #RGB,

Læs mere

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget

Læs mere

Talsystemer I V X L C D M 1 5 10 50 100 500 1000. Hvad betyder halvanden??. Kan man også sige Halvtredie???

Talsystemer I V X L C D M 1 5 10 50 100 500 1000. Hvad betyder halvanden??. Kan man også sige Halvtredie??? Romertal. Hvordan var de struktureret?? Systematisk?? I V X L C D M 1 5 10 50 100 500 1000 Regler: Hvis et lille tal skrives foran et stort tal trækkes tallet fra: IV = 5-1 = 4 Hvis et lille tal skrives

Læs mere

Netværksalgoritmer 1

Netværksalgoritmer 1 Netværksalgoritmer 1 Netværksalgoritmer Netværksalgoritmer er algoritmer, der udføres på et netværk af computere Deres udførelse er distribueret Omfatter algoritmer for, hvorledes routere sender pakker

Læs mere

Kursus 02199: Programmering. Kontrol af programudførelsen. afsnit 3.1-3.5. if (indkomst > 267000) topskat = (indkomst-267000) * 0.

Kursus 02199: Programmering. Kontrol af programudførelsen. afsnit 3.1-3.5. if (indkomst > 267000) topskat = (indkomst-267000) * 0. Kursus 02199: Programmering afsnit 3.1-3.5 Anne Haxthausen IMM, DTU 1. Kontrol af programudførn (afsnit 3.1) 2. Valg-sætninger (if og switch) (afsnit 3.2 og 3.3) 3. Bloksætninger (afsnit 3.2) 4. Logiske

Læs mere

PMDK PC-Side Basic Function Reference (Version 1.0)

PMDK PC-Side Basic Function Reference (Version 1.0) PMDK PC-Side Basic Function Reference (Version 1.0) http://www.icpdas.com PMDK PC-Side Basic Function Reference V 1.0 1 Warranty All products manufactured by ICPDAS Inc. are warranted against defective

Læs mere

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design

Læs mere

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

MS Visual Studio Basic 2010. En kort vejledning

MS Visual Studio Basic 2010. En kort vejledning Du kan hente programmet gratis her: MS Visual Studio Basic 2010 Express http://www.microsoft.com/visualstudio/eng/downloads#d-2010-express Tryk på Install Now og følg vejledningen. Indholdsfortegnelse

Læs mere

Aktivering af Survey funktionalitet

Aktivering af Survey funktionalitet Surveys i REDCap REDCap gør det muligt at eksponere ét eller flere instrumenter som et survey (spørgeskema) som derefter kan udfyldes direkte af patienten eller forsøgspersonen over internettet. Dette

Læs mere

Arduino kursus lektion 4:

Arduino kursus lektion 4: Arduino kursus lektion 4: I denne lektion skal vi bruge et digitalt termometer til at aflæse temperaturen! Herefter skal vi tænde 3 dioder som hver indikerer forskellige temperaturer! Opgave 1: Temperatursensor

Læs mere

LCD Character display Intro

LCD Character display Intro LCD Character display Intro Der findes flere typer af LCD karakter-displays, fra forskellige firmaer. Her er vist en type, der er blå. Pins: Nummer 1 fra venstre Her er vist en nærmere beskrivelse af de

Læs mere

#AlleKanKode. Lektion 3 - Operatorer

#AlleKanKode. Lektion 3 - Operatorer #AlleKanKode Lektion 3 - Operatorer Disclaimer / Ansvarsfraskrivelse Alt du deler og siger mm bliver optaget. Lad være med at dele privat oplysninger, adgangskoder, kreditkort oplysninger osv. Andre vil

Læs mere

LESSON NOTES Extensive Reading in Danish for Intermediate Learners #8 How to Interview

LESSON NOTES Extensive Reading in Danish for Intermediate Learners #8 How to Interview LESSON NOTES Extensive Reading in Danish for Intermediate Learners #8 How to Interview CONTENTS 2 Danish 5 English # 8 COPYRIGHT 2019 INNOVATIVE LANGUAGE LEARNING. ALL RIGHTS RESERVED. DANISH 1. SÅDAN

Læs mere

Hvor er mine runde hjørner?

Hvor er mine runde hjørner? Hvor er mine runde hjørner? Ofte møder vi fortvivlelse blandt kunder, når de ser deres nye flotte site i deres browser og indser, at det ser anderledes ud, i forhold til det design, de godkendte i starten

Læs mere

Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov.

Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov. På dansk/in Danish: Aarhus d. 10. januar 2013/ the 10 th of January 2013 Kære alle Chefer i MUS-regi! Vores mange brugere på musskema.dk er rigtig gode til at komme med kvalificerede ønsker og behov. Og

Læs mere

Lektion 6 / Analog Arduino

Lektion 6 / Analog Arduino 1 Jeremiah Teipen: Electronic Sandwich BSPR11 Lektion 6 / Analog Arduino Mogens Jacobsen / moja@itu.dk Siden sidst 2 Har I fået nogle LEDs til at blinke? Har I brugt kontakter? Hvad har I eksperimenteret

Læs mere

#AlleKanKode. Lektion 2 - Konstanter og Variabler

#AlleKanKode. Lektion 2 - Konstanter og Variabler #AlleKanKode Lektion 2 - Konstanter og Variabler Disclaimer / Ansvarsfraskrivelse Alt du deler og siger mm bliver optaget. Lad være med at dele privat oplysninger, adgangskoder, kreditkort oplysninger

Læs mere

Fejlbeskeder i SMDB. Business Rules Fejlbesked Kommentar. Validate Business Rules. Request- ValidateRequestRegist ration (Rules :1)

Fejlbeskeder i SMDB. Business Rules Fejlbesked Kommentar. Validate Business Rules. Request- ValidateRequestRegist ration (Rules :1) Fejlbeskeder i SMDB Validate Business Rules Request- ValidateRequestRegist ration (Rules :1) Business Rules Fejlbesked Kommentar the municipality must have no more than one Kontaktforløb at a time Fejl

Læs mere

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012

Terese B. Thomsen 1.semester Formidling, projektarbejde og webdesign ITU DMD d. 02/11-2012 Server side Programming Wedesign Forelæsning #8 Recap PHP 1. Development Concept Design Coding Testing 2. Social Media Sharing, Images, Videos, Location etc Integrates with your websites 3. Widgets extend

Læs mere

Spil Master Mind. Indledning.

Spil Master Mind. Indledning. side 1 af 16 Indledning. Spillet som denne rapport beskriver, indgår i et større program, der er lavet som projekt i valgfaget programmering C på HTX i perioden 9/11-98 til 12/1-99. Spillet skal give de

Læs mere

Programmering i C Intro og grundlæggende C 5. marts 2007

Programmering i C Intro og grundlæggende C 5. marts 2007 Programmering i C Intro og grundlæggende C 5. marts 2007 Mads Pedersen, OZ6HR mads@oz6hr.dk Plan for kurset Ma. 5/3: Ma. 19/3: Ma. 2/4: To. 12/4: Formål, intro, grundlæggende Videre, sprogkonstruktioner

Læs mere

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit.

Med TI-89 / TI-92 Plus kan du også sammenligne eller manipulere binære tal bit for bit. Kapitel 20: Talsystemer 20 Resumé af talsystemer... 344 Indtastning og omregning af talsystemer... 345 Udførelse af matematiske beregninger med hexadecimale og binære tal... 346 Sammenligning eller manipulation

Læs mere

Projekt rapport. for. Zigbee kommunikation

Projekt rapport. for. Zigbee kommunikation Projekt: Zigbee kommunikation Dato: 24-02-2010 Afleverings Dato: 04-06-2009 Titel: Projekt rapport for Zigbee kommunikation 6. semester projekt i WEM1 ved Ingeniørhøjskolen i Århus Gruppe 2: 06709 Sean

Læs mere

Demonstration af transitmetoden

Demonstration af transitmetoden Demonstration af transitmetoden Introduktion: Det kan være svært at observere exoplaneter direkte, derfor benytter man sig i langt højere grad af transitmetoden: Her udnyttes at exoplaneter der bevæger

Læs mere

Delta Elektronik A/S - AKD

Delta Elektronik A/S - AKD Delta Elektronik A/S - AKD Hardware og type oversigt Grundlæggende oplysninger med forbindelser Opsætning af IP adresser på drev alle muligheder Gennemgang af WorkBench Up/Down load parametre filer Mest

Læs mere

Lektion 5 / Arduino intro. Mogens Jacobsen / moja@itu.dk

Lektion 5 / Arduino intro. Mogens Jacobsen / moja@itu.dk 1 BSPR11 Lektion 5 / Arduino intro Mogens Jacobsen / moja@itu.dk Dagen i dag 2 Weird & Wild: Grupperne 5 & 6 + mogens Lektion 5 (AUD 3) Om det kommende forløb Om Arduinos historie og slægtskab Om programmering

Læs mere