mrfioc2  2.3.0
drvemPrescaler.cpp
Go to the documentation of this file.
1 /*************************************************************************\
2 * Copyright (c) 2010 Brookhaven Science Associates, as Operator of
3 * Brookhaven National Laboratory.
4 * mrfioc2 is distributed subject to a Software License Agreement found
5 * in file LICENSE that is included with this distribution.
6 \*************************************************************************/
7 /*
8  * Author: Michael Davidsaver <mdavidsaver@gmail.com>
9  */
10 
11 
12 #include "mrf/databuf.h"
13 #include <mrfCommonIO.h>
14 #include "evrRegMap.h"
15 
16 #include <stdexcept>
17 #include <evr/evr.h>
18 #include <evr/prescaler.h>
19 
20 #include <epicsExport.h>
21 #include "drvemPrescaler.h"
22 
23 MRMPreScaler::MRMPreScaler(const std::string& n, EVR& o,volatile unsigned char* b)
24  :base_t(n,o)
25  ,base(b)
26 {}
27 
29 
30 epicsUInt32
32 {
33  return nat_ioread32(base);
34 }
35 
36 void
38 {
39  nat_iowrite32(base, v);
40 }
41 
42 epicsUInt32
44 {
45  return nat_ioread32(base + ScalerPhasOffs_offset);
46 }
47 
48 void
50 {
52 }
53 
virtual epicsUInt32 prescaler() const OVERRIDE FINAL
virtual ~MRMPreScaler()
INLINE void nat_iowrite32(volatile void *addr, epicsUInt32 val)
Definition: mrfIoOpsDef.h:55
#define OBJECT_BEGIN2(klass, Base)
Definition: object.h:507
INLINE epicsUInt32 nat_ioread32(volatile void *addr)
Definition: mrfIoOpsDef.h:48
virtual void setPrescaler(epicsUInt32) OVERRIDE FINAL
OBJECT_PROP2("Phase Offset", &MRMPreScaler::prescalerPhasOffs, &MRMPreScaler::setPrescalerPhasOffs)
void setPrescalerPhasOffs(epicsUInt32)
#define OBJECT_END(klass)
Definition: object.h:523
#define ScalerPhasOffs_offset
Definition: evrRegMap.h:193
MRMPreScaler(const std::string &n, EVR &o, volatile unsigned char *b)
Base interface for EVRs.
Definition: evr.h:45
epicsUInt32 prescalerPhasOffs() const