The example program for mbed pin-compatible platforms

Dependencies:   mbed

Fork of mbed_blinky by Mbed

Committer:
vartan
Date:
Sun Aug 24 21:27:48 2014 +0000
Revision:
19:56d79e19eb8d
Parent:
17:3dbf734d2731
removed markdown test;

Who changed what in which revision?

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