The example program for mbed pin-compatible platforms

Dependencies:   mbed

Fork of mbed_blinky by Mbed

Committer:
vartan
Date:
Sun Aug 24 02:16:32 2014 +0000
Revision:
9:9088b8a51286
Parent:
8:ec3e22e9100e
Child:
10:be10c21d2681
Fixed Bug

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vartan 7:b1e0b6f381ba 1 #include "MorseCharacter.h"
vartan 8:ec3e22e9100e 2 MorseCharacter::MorseCharacter(char character) {
vartan 8:ec3e22e9100e 3 if(character >= '0' && character <= '9')
vartan 8:ec3e22e9100e 4 mSequence = numbers[character-'0'];
vartan 9:9088b8a51286 5 else if(character >= 'a' && character <= 'z')
vartan 8:ec3e22e9100e 6 mSequence = letters[character-'a'];
vartan 9:9088b8a51286 7 else if(character >= 'A' && character <= 'Z')
vartan 8:ec3e22e9100e 8 mSequence = letters[character-'A'];
vartan 8:ec3e22e9100e 9 else
vartan 8:ec3e22e9100e 10 mSequence = 0x00;
vartan 8:ec3e22e9100e 11 }
vartan 8:ec3e22e9100e 12 char MorseCharacter::getNumberOfParts() {
vartan 8:ec3e22e9100e 13 return this->mSequence >> 5;
vartan 8:ec3e22e9100e 14 }
vartan 8:ec3e22e9100e 15 char MorseCharacter::getPart(int partNumber) {
vartan 8:ec3e22e9100e 16 char length = this->getNumberOfParts();
vartan 8:ec3e22e9100e 17 if(partNumber >= length) {
vartan 8:ec3e22e9100e 18 return 0x00; // error or space
vartan 8:ec3e22e9100e 19 } else {
vartan 8:ec3e22e9100e 20 return (this->mSequence >> (length-partNumber)) & 0x01; // 1:dash, 0:dit
vartan 8:ec3e22e9100e 21 }
vartan 8:ec3e22e9100e 22 }
vartan 7:b1e0b6f381ba 23
vartan 7:b1e0b6f381ba 24 const char MorseCharacter::numbers[] = {
vartan 7:b1e0b6f381ba 25 0xBF, // 0
vartan 7:b1e0b6f381ba 26 0xAF, // 1
vartan 7:b1e0b6f381ba 27 0xA7, // 2
vartan 7:b1e0b6f381ba 28 0xA3, // 3
vartan 7:b1e0b6f381ba 29 0xA1, // 4
vartan 7:b1e0b6f381ba 30 0xA0, // 5
vartan 7:b1e0b6f381ba 31 0xB0, // 6
vartan 7:b1e0b6f381ba 32 0xB8, // 7
vartan 7:b1e0b6f381ba 33 0xBC, // 8
vartan 7:b1e0b6f381ba 34 0xBE // 9
vartan 7:b1e0b6f381ba 35 };
vartan 7:b1e0b6f381ba 36 const char MorseCharacter::letters[] = {
vartan 7:b1e0b6f381ba 37 0x48, // A
vartan 7:b1e0b6f381ba 38 0x90, // B
vartan 7:b1e0b6f381ba 39 0x94, // C
vartan 7:b1e0b6f381ba 40 0x70, // D
vartan 7:b1e0b6f381ba 41 0x20, // E
vartan 7:b1e0b6f381ba 42 0x84, // F
vartan 7:b1e0b6f381ba 43 0x78, // G
vartan 7:b1e0b6f381ba 44 0x80, // H
vartan 7:b1e0b6f381ba 45 0x40, // I
vartan 7:b1e0b6f381ba 46 0x8E, // J
vartan 7:b1e0b6f381ba 47 0x74, // K
vartan 7:b1e0b6f381ba 48 0x88, // L
vartan 7:b1e0b6f381ba 49 0x58, // M
vartan 7:b1e0b6f381ba 50 0x50, // N
vartan 7:b1e0b6f381ba 51 0x7C, // O
vartan 7:b1e0b6f381ba 52 0x8C, // P
vartan 7:b1e0b6f381ba 53 0x9A, // Q
vartan 7:b1e0b6f381ba 54 0x68, // R
vartan 7:b1e0b6f381ba 55 0x60, // S
vartan 7:b1e0b6f381ba 56 0x30, // T
vartan 7:b1e0b6f381ba 57 0x64, // U
vartan 7:b1e0b6f381ba 58 0x82, // V
vartan 7:b1e0b6f381ba 59 0x6C, // W
vartan 7:b1e0b6f381ba 60 0x92, // X
vartan 7:b1e0b6f381ba 61 0x96, // Y
vartan 7:b1e0b6f381ba 62 0x98 // Z
vartan 7:b1e0b6f381ba 63 };