File: pinStateMode.m

package info (click to toggle)
octave-arduino 0.12.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,616 kB
  • sloc: cpp: 3,221; python: 438; makefile: 152; xml: 22; sh: 1
file content (74 lines) | stat: -rw-r--r-- 2,327 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
## Copyright (C) 2018-2019 John Donoghue <john.donoghue@ieee.org>
## 
## This program is free software: you can redistribute it and/or modify it
## under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
## 
## This program is distributed in the hope that it will be useful, but
## WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details. see
## <https://www.gnu.org/licenses/>.

## -*- texinfo -*- 
## @deftypefn {} {@var{value} =} pinStateMode (@var{pinStateVal})
## Private function
## @end deftypefn

function [pstate, pmode]  = pinStateMode (pinStateVal)

  if ischar(pinStateVal)
    switch (tolower(pinStateVal))
      case "unset"
        pstate = 0; pmode="none";
      case "analoginput"
        pstate = 1; pmode = "analog";
      case "digitalinput"
        pstate = 2; pmode="digital";
      case "digitaloutput"
        pstate = 3; pmode="digital";
      case "pullup"
        pstate = 4; pmode = "digital";
      case "i2c"
        pstate = 5; pmode = "i2c";
      case "pwm"
        pstate = 6; pmode="pwm";
      case "servo"
        pstate = 7;  pmode="pwm";
      case "spi"
        pstate = 3;  pmode="spi"; % for now just setting as output
      case "interrupt"
        pstate = 2;  pmode="interrupt"; % for now just setting as input
      case "reserved"
        pstate = 10;  pmode="reserved"; 
      otherwise
        error ("unknown pin state %s", pinStateVal);
    endswitch
  else
     switch (pinStateVal)
      case 1
        pstate = "analoginput"; pmode="analog";
      case 2
        pstate = "digitalinput"; pmode="digital";
      case 3
        pstate = "digitaloutput"; pmode="digital";
      case 4
        pstate = "pullup"; pmode="digital";
      case 5
        pstate = "i2c"; pmode="i2c";
      case 6
        pstate = "pwm"; pmode="pwm";
      case 7
        pstate = "servo"; pmode="pwm";
      case 8
        pstate = "spi";  pmode="spi";
      case 9
        pstate = "interrupt";  pmode="interrupt";
      case 10
        pstate = "reserved";  pmode="reserved";
      otherwise
        pstate = "unset"; pmode="";
    endswitch
  endif
endfunction