Está en la página 1de 489

Manual de CCS C Compiler

PCB / PCM / PCH

de octubre de el
ao 2015
TODOS LOS DERECHOS
RESERVADOS.
doopyright Custom Computer Services, Inc. 2015

y
o

CCS C 10082015

Tabla de contenido
overview ........................................................................................................................................................................1
do Compiler..................................................................................................................................................................1
PCB, PCM y PCH general ...................................................................................................................................1
Instalacin ..................................................................................................................................................................1
Technical Support.......................................................................................................................................................2
directorios ..................................................................................................................................................................2
Archivo
Formats................................................................................................................................................................3
La
invocacin
de
la
lnea
de
comandos
Compiler........................................................................................................................4
PCW general ...........................................................................................................................................................5
Hombresu
..........................................................................................................................................................................6
editor aqu .................................................................................................................................................................6
Deslice
fuera
de
Windows
.....................................................................................................................................................7
Editor ..........................................................................................................................................................................7
depuracin Windows...................................................................................................................................................7
Estado Bar...................................................................................................................................................................8
UNEDMensajes
tput
.......................................................................................................................................................8
programa de sintaxis
...........................................................................................................................................................11
oveRall Structure.......................................................................................................................................................11
Comentario
..................................................................................................................................................................11
Tsecuencias rigraph .................................................................................................................................................12
multiple
archivos
de
proyecto
................................................................................................................................................12
mulUnidades
de
compilacin
tiple
........................................................................................................................................13
Ejemplo
Programa
Completo
..............................................................................................................................................13
declaraciones
...................................................................................................................................................................15
declaraciones
...............................................................................................................................................................15
if................................................................................................................................................................................16
whilmi .........................................................................................................................................................................16
do-while ....................................................................................................................................................................17
para
.............................................................................................................................................................................17
cambiar
.......................................................................................................................................................................17
regreso
........................................................................................................................................................................18
ir
..........................................................................................................................................................................18
etiqueta
..........................................................................................................................................................................18
segundoreak
........................................................................................................................................................................19
continumi
....................................................................................................................................................................19
expr
..........................................................................................................................................................................19
; ................................................................................................................................................................................20
stmt...........................................................................................................................................................................20
Expressions .................................................................................................................................................................21
constantes .................................................................................................................................................................21
identificadores
..................................................................................................................................................................22
Aire
librerators..................................................................................................................................................................22
iv

table de
Contenidos
Aire
librerador
Precedencia
...............................................................................................................................................23
Datos Definitions............................................................................................................................................................25
Las
definiciones
de
datos
........................................................................................................................................................25
Typmi Specifiers.........................................................................................................................................................25
Type
Calificadores
.........................................................................................................................................................26
Los
tipos
enumerados
...................................................................................................................................................27
Estructuras y uniones ..............................................................................................................................................28
typedef......................................................................................................................................................................29
No
de
datos
RAM
Definiciones
.......................................................................................................................................29
El
uso
de
memoria
de
programa
para
Data
..............................................................................................................................30
Registros
con
nombre
......................................................................................................................................................33
la definicin de funciones
.......................................................................................................................................................35
la
definicin
de
funciones
....................................................................................................................................................35
oveFunciones rloaded ..............................................................................................................................................35
Parmetros
de
referencia
.............................................................................................................................................36
Defecto Parameters...................................................................................................................................................36
Lista de argumentos ...........................................................................................................................................36

y
o

table de
Contenidos
Funcional Overview.....................................................................................................................................................39
I2C ............................................................................................................................................................................39
ADC ..........................................................................................................................................................................40
Comparador analgico
..................................................................................................................................................41
PODER
Bus...................................................................................................................................................................41
CCP ..........................................................................................................................................................................43
Cdigo Profile..............................................................................................................................................................44
configuracin de la memoria
..............................................................................................................................................45
DAC ..........................................................................................................................................................................46
datos en la EEPROM
............................................................................................................................................................47
Modulador de Datos de Seal
..............................................................................................................................................48
Exmemoria interna
......................................................................................................................................................49
GenePropsito ral I/O.................................................................................................................................................49
Pantalla interna
.............................................................................................................................................................50
Interno Oscillator......................................................................................................................................................51
interrupciones
..................................................................................................................................................................51
LoTensin w Detect ..................................................................................................................................................53
P.MP/EPMP...............................................................................................................................................................53
Poder PWM..............................................................................................................................................................54
programa Eeprom ......................................................................................................................................................55
PSP ..........................................................................................................................................................................57
QEI ...........................................................................................................................................................................58
RS232 I/O.................................................................................................................................................................58
RTOS .......................................................................................................................................................................60
SPI............................................................................................................................................................................62
Horar0 ......................................................................................................................................................................63
Horar1 ......................................................................................................................................................................64
Horar2 ......................................................................................................................................................................64
HoraR3 ......................................................................................................................................................................65
HoraR4 ......................................................................................................................................................................65
HoraR5 ......................................................................................................................................................................65
Horareal academia de bellas artes
......................................................................................................................................................................66
HorarB ......................................................................................................................................................................67
USB ..........................................................................................................................................................................68
Referencia de voltaje
....................................................................................................................................................70
WDT o temporizador de vigilancia
........................................................................................................................................71 INTERRUPT_ENABLED ()
...................................................................................................................................................72
Corriente de E / S
................................................................................................................................................................73
preprocesor ...............................................................................................................................................................75
ANUARIO DE PRE-PROCESADOR
............................................................................................................................75
direccin .............................................................................................................................................................77
_unttribute_x...............................................................................................................................................................77
#comom #endasm #asm asis
........................................................................................................................................78
#poco............................................................................................................................................................................8
0
buildcount__ .........................................................................................................................................................80
#builre ........................................................................................................................................................................80
#porte.........................................................................................................................................................................81
#casmi ........................................................................................................................................................................82
_date_ ......................................................................................................................................................................82
#Delawarefine................................................................................................................................................................
iii

CCS C 10082015
......83 definedinc
.................................................................................................................................................................84
#devicmi .....................................................................................................................................................................84
_dispositivo_
...................................................................................................................................................................86
#yof expr #else #elif #endif
..........................................................................................................................................87
#mirror ........................................................................................................................................................................87
#export (options).......................................................................................................................................................88
archivo
.....................................................................................................................................................................89
nombre del archivo
............................................................................................................................................................89
#fill_rom ....................................................................................................................................................................90
#fusibles
.......................................................................................................................................................................90
#hexcomment ...........................................................................................................................................................91
#carn de
identidad.........................................................................................................................................................................
....92

iv

table de
Contenidos
#ignore_warnings .....................................................................................................................................................92
#import (options).......................................................................................................................................................93
#includmi
....................................................................................................................................................................94
#inlinmi
.......................................................................................................................................................................94
#ent_xxxx ..................................................................................................................................................................95
#INT_DEFAULT .......................................................................................................................................................98
#ent_global ................................................................................................................................................................98
lnea
....................................................................................................................................................................98
#list ...........................................................................................................................................................................99
#linmi
..........................................................................................................................................................................99
#locate ....................................................................................................................................................................100
#mdulo..................................................................................................................................................................100
#nolist .....................................................................................................................................................................101
#jefes
........................................................................................................................................................................101
#OPt ........................................................................................................................................................................102
#Org ........................................................................................................................................................................102
#pin_select .............................................................................................................................................................103
tarjeta
de
circuito
impreso
..................................................................................................................................................................105
pcm .................................................................................................................................................................105
PCH ..................................................................................................................................................................106
#pRagma .................................................................................................................................................................106
#priority...................................................................................................................................................................106
#profile....................................................................................................................................................................107
#reserva .................................................................................................................................................................108
#ROM
.......................................................................................................................................................................108
#sepatarifa ...............................................................................................................................................................109
#serialize ................................................................................................................................................................109
#tarea
.......................................................................................................................................................................111
hora .................................................................................................................................................................111
#type.......................................................................................................................................................................112
#undeF ....................................................................................................................................................................113
_unicodmi
.................................................................................................................................................................113
#nosmi
capture...........................................................................................................................................................114
#nose
retardo
..............................................................................................................................................................115
#nose
dynamic_memory
..........................................................................................................................................116
#nose
fast_io
............................................................................................................................................................117
#nose
fixed_io
..........................................................................................................................................................117
#nose
I2C
..................................................................................................................................................................117
#nosmi
profile()...........................................................................................................................................................119
#nosmi
pwm().............................................................................................................................................................119
#nosmi
rs232..............................................................................................................................................................120
#nosmi
rtos.................................................................................................................................................................123
#nose
spi
..................................................................................................................................................................124
#nose
standard_io
....................................................................................................................................................125
v

CCS C 10082015
#nosmi
timer...............................................................................................................................................................126
#nose
touchpad
........................................................................................................................................................127
#Washingtonrning
.................................................................................................................................................................128
#word......................................................................................................................................................................129
#zero_ram ..............................................................................................................................................................130
Incorporado
Functions........................................................................................................................................................131
INCORPORADO
FUNCTIONS...........................................................................................................................................131
abdominales(
)
......................................................................................................................................................................137
pecado() Cos () tan () asin () acos () atan () sinh () cosh () tanh () atan2 () ..................... .......................................
137
adc_done
()
............................................................................................................................................................138
valer
()
..................................................................................................................................................................139 un dedo
del
pie
........................................................................................................................................................................140
unTOF
()
......................................................................................................................................................................140
pin_select () .............................................................................................................................................................141
atoi () atol () atoi32 () .....................................................................................................................................142
at_clear_interrupts () ..............................................................................................................................................142
unt_disable_interrupts
()
...........................................................................................................................................143 at_enable_interrupts ()
...........................................................................................................................................144

vi

table de
Contenidos
unt_get_capture ()
....................................................................................................................................................145
at_get_missing_pulse_delay () ...............................................................................................................................145
at_get_period () ......................................................................................................................................................146
at_get_phase_counter () ........................................................................................................................................147
at_get_resolution ( ).................................................................................................................................................147
at_get_set_point ( )..................................................................................................................................................148
at_get_set_point_error () ........................................................................................................................................148
at_get_status ( ).......................................................................................................................................................149
at_interrupt_active ( )...............................................................................................................................................150
at_set_compare_time ( )..........................................................................................................................................151
at_set_missing_pulse_delay () ...............................................................................................................................151
at_set_resolution () .................................................................................................................................................152
at_set_set_point () ..................................................................................................................................................152
at_setup_cc ( ).........................................................................................................................................................153
bit_clear ( )...............................................................................................................................................................154
bit_set () .................................................................................................................................................................154
bit_test () ................................................................................................................................................................155
brownout_enable ( ).................................................................................................................................................156
bsearch () ...............................................................................................................................................................156
calloc () ...................................................................................................................................................................157
hacer techo(
).......................................................................................................................................................................157
clc1_setup_gate () clc2_setup_gate () clc3_setup_gate () clc4_setup_gate () ...................................... ............. 158
clc1_setup_input () clc2_setup_input () clc3_setup_input () clc4_setup_input () ........................ ........................ 159
clear_interrupt () .....................................................................................................................................................160
clear_pwm1_interrupt () clear_pwm2_interrupt () clear_pwm3_interrupt () clear_pwm4_interrupt ()
clear_pwm5_interrupt () clear_pwm6_interrupt () ..................................................................................................160
cog_status ( )...........................................................................................................................................................161
cog_restart () ..........................................................................................................................................................162
crc_calc () crc_calc8 () crc_calc16 () ...............................................................................................................162
crc_init(mode).........................................................................................................................................................163
cwg_status () ..........................................................................................................................................................163
cwg_restart ( )..........................................................................................................................................................164
dac_write ( ).............................................................................................................................................................164
(delay_cycles )........................................................................................................................................................165
(Delay_ms ).............................................................................................................................................................165
delay_us ( )..............................................................................................................................................................166
disable_interrupts () ................................................................................................................................................167
disable_pwm1_interrupt () disable_pwm2_interrupt () disable_pwm3_interrupt ()
disable_pwm4_interrumpir () disable_pwm5_interrupt () disable_pwm6_interrupt () ......................................... ........
168
div
()
ldiv
(
)..............................................................................................................................................................169
enable_interrupts () ................................................................................................................................................169
enable_pwm1_interrupt () enable_pwm2_interrupt () enable_pwm3_interrupt ()
enable_pwm4_interrumpir () enable_pwm5_interrupt () enable_pwm6_interrupt () ......................................... .........
170
erase_eeprom
()
.....................................................................................................................................................171
mirase_program_eeprom
(
)......................................................................................................................................171
exp
()
......................................................................................................................................................................172
ext_int_edge ( )........................................................................................................................................................173
(FABS) .....................................................................................................................................................................173
getc () getch () getchar () fgetc ( )..................................................................................................................174 piso( )
.....................................................................................................................................................................175 HOQF
() ....................................................................................................................................................................175
gratis(
)
......................................................................................................................................................................176
frexp () ....................................................................................................................................................................176
get_capture () .........................................................................................................................................................177
get_capture_event () ...............................................................................................................................................177
get_capture_time () .................................................................................................................................................178
get_capture32 () ......................................................................................................................................................178
get_hspwm_capture () ............................................................................................................................................179
get_nco_accumulator () ..........................................................................................................................................180
vi
i

CCS C 10082015
get_nco_inc_value () ..............................................................................................................................................180
get_ticks () ..............................................................................................................................................................181
get_timerA ( )...........................................................................................................................................................181

vii
i

table de
Contenidos
get_timerB ( )...........................................................................................................................................................182
get_timerx () ...........................................................................................................................................................182
get_tris_x ( ).............................................................................................................................................................183
getenv () .................................................................................................................................................................183
goto_address () ......................................................................................................................................................187
high_speed_adc_done () ........................................................................................................................................188
i2c_init () .................................................................................................................................................................188
i2c_isr_state () ........................................................................................................................................................189
i2c_poll () ................................................................................................................................................................190
i2c_read () ..............................................................................................................................................................190
i2c_slaveaddr () ......................................................................................................................................................191
i2c_speed ( )............................................................................................................................................................192
i2c_start ( )...............................................................................................................................................................192
i2c_stop ( )...............................................................................................................................................................193
i2c_write () ..............................................................................................................................................................193
de
entrada
()
....................................................................................................................................................................194
input_change_x () ...................................................................................................................................................195
input_state ( )...........................................................................................................................................................196
input_x () ................................................................................................................................................................196
interrupt_active ( )....................................................................................................................................................197
isalnum (char) isalpha (char) iscntrl (x) isdigit (char) isgraph (x) islower (char) isspace (char)
isupper (char) isxdigit (char) isprint (x) ispunct (x) .................................. .................................................. .............
197
isamong
(
)...............................................................................................................................................................198
yoTOA
()
......................................................................................................................................................................199
jump_to_isr ( )..........................................................................................................................................................200
kbhit () ....................................................................................................................................................................200
label_address ( )......................................................................................................................................................201
laboratorios()
.....................................................................................................................................................................202
lcd_contrast ( ).........................................................................................................................................................202
lcd_load ( )...............................................................................................................................................................203
lcd_symbol () ..........................................................................................................................................................203
ldexp() ...................................................................................................................................................................204
Iniciar
sesin(
)
.......................................................................................................................................................................204 log10
() ...................................................................................................................................................................205
longjmp( )................................................................................................................................................................206
make8 () .................................................................................................................................................................206
make16() ...............................................................................................................................................................207
make32 () ...............................................................................................................................................................207
malloc ( )..................................................................................................................................................................208
memcpy () memmove ( ).....................................................................................................................................208
memset () ...............................................................................................................................................................209
modf () ....................................................................................................................................................................210
_mul() ....................................................................................................................................................................210
nargs () ...................................................................................................................................................................211
offsetof () offsetofbit () ......................................................................................................................................212
output_x () ..............................................................................................................................................................213
output_bit () ............................................................................................................................................................213
output_drive () ........................................................................................................................................................214
UNEDtput_float
()
.........................................................................................................................................................215 output_high ()
.........................................................................................................................................................215 output_low (
)...........................................................................................................................................................216
UNEDtput_toggle
()
......................................................................................................................................................217
Educacin
fsicarror
()
..................................................................................................................................................................217 pid_busy
(
)..............................................................................................................................................................218
pid_get_result ( )......................................................................................................................................................218
pid_read () ..............................................................................................................................................................219
pid_write ( )..............................................................................................................................................................220
ix

CCS C 10082015
pll_locked () ............................................................................................................................................................221
(port_x_pullups )....................................................................................................................................................221
pow
()
PWR
()
...........................................................................................................................................................222 printf () fprintf
() ................................................................................................................................................223 profileout ()
..............................................................................................................................................................224

table de
Contenidos
psmc_blanking() ....................................................................................................................................................225
psmc_deadband ( )..................................................................................................................................................226
psmc_duty ( )...........................................................................................................................................................227
psmc_freq_adjust () ................................................................................................................................................228
psmc_modulation () ................................................................................................................................................228
psmc_pins () ...........................................................................................................................................................230
psmc_shutdown () ..................................................................................................................................................231
psmc_sync () ..........................................................................................................................................................232
psp_output_full () psp_input_full () psp_overflow () ......................................... ................................................. 233
putc_send () fputc_send ( )...............................................................................................................................233
pwm_off()................................................................................................................................................................234
pwm_on()................................................................................................................................................................235
pwm_set_duty () ......................................................................................................................................................235
pwm_set_duty_percent ..........................................................................................................................................236
pwm_set_frequency ...............................................................................................................................................236
pwm1_interrupt_active () pwm2_interrupt_active () pwm3_interrupt_active ()
pwm4_interrupt_active () pwm5_interrupt_active () pwm6_interrupt_active () ......................................... ............. 237
qei_get_count ( )......................................................................................................................................................237
qei_status ( )............................................................................................................................................................238
QSOrt
()
....................................................................................................................................................................238 rand ()
.....................................................................................................................................................................239
(rcv_buffer_bytes )..................................................................................................................................................240
rcv_buffer_full ( )......................................................................................................................................................240
read_adc () .............................................................................................................................................................241
read_bank () ...........................................................................................................................................................242
read_calibration ( )...................................................................................................................................................242
read_configuration_memory ( )................................................................................................................................243
read_eeprom ( ).......................................................................................................................................................244
read_extended_ram () ............................................................................................................................................244
read_program_memory () read_external_memory () ............................................ ............................................. 245
read_high_speed_adc ( ).........................................................................................................................................245
read_rom_memory () ..............................................................................................................................................247
read_sd_adc () .......................................................................................................................................................247
realloc () .................................................................................................................................................................248
release_io().............................................................................................................................................................249
reset_cpu () ............................................................................................................................................................249
restart_cause () ......................................................................................................................................................250
restart_wdt () ..........................................................................................................................................................250
girar
a
la
izquierda(
)
............................................................................................................................................................251 Gira a la
derecha( ) ..........................................................................................................................................................252
rtc_alarm_read () ....................................................................................................................................................252
rtc_alarm_write ( )....................................................................................................................................................253
rtc_read () ...............................................................................................................................................................254
rtc_write ( )...............................................................................................................................................................254
rtos_await ( )............................................................................................................................................................255
rtos_disable ( ).........................................................................................................................................................255
rtos_enable () .........................................................................................................................................................256
rtos_msg_poll ( )......................................................................................................................................................256
rtos_msg_read () ....................................................................................................................................................257
rtos_msg_send ( )....................................................................................................................................................257
rtos_overrun () ........................................................................................................................................................258
rtos_run () ...............................................................................................................................................................258
rtos_signal ( )...........................................................................................................................................................259
rtos_stats ( ).............................................................................................................................................................259
rtos_terminate () .....................................................................................................................................................260
rtos_wait ( )..............................................................................................................................................................260
rtos_yield ( ).............................................................................................................................................................261
set_adc_channel () .................................................................................................................................................262
set_analog_pins () ..................................................................................................................................................262
scanf () ...................................................................................................................................................................263
set_cog_blanking () ................................................................................................................................................265
set_cog_dead_band ( )............................................................................................................................................266
vii
vii

CCS C 10082015

SEt_cog_phase ( )....................................................................................................................................................266
set_compare_time ( )...............................................................................................................................................267
set_dedicated_adc_channel ( )................................................................................................................................268
set_hspwm_duty () .................................................................................................................................................269
set_hspwm_event () set_hspwm_event_secondary () ............................................ ........................................... 269
set_hspwm_override () ...........................................................................................................................................270
set_hspwm_phase () ..............................................................................................................................................271
set_nco_inc_value () ..............................................................................................................................................272
set_open_drain () ...................................................................................................................................................272
set_power_pwm_override () ...................................................................................................................................273
set_power_pwmx_duty () .......................................................................................................................................273
set_pulldown () .......................................................................................................................................................274
set_pullup ( )............................................................................................................................................................274
set_pwm1_duty () set_pwm2_duty () set_pwm3_duty () set_pwm4_duty () set_pwm5_duty () ................... 275
set_pwm1_offset () set_pwm2_offset () set_pwm3_offset () set_pwm4_offset ()
SEt_pwm5_offset () set_pwm6_offset ( ).................................................................................................................276
set_pwm1_period () set_pwm2_period () set_pwm3_period () set_pwm4_period ()
SEt_pwm5_period () set_pwm6_period () ..............................................................................................................277
set_pwm1_phase () set_pwm2_phase () set_pwm3_phase () set_pwm4_phase ()
SEt_pwm5_phase () set_pwm6_phase ( )...............................................................................................................278
set_open_drain_x().................................................................................................................................................278
set_rtcc () set_timer0 () set_timer1 () set_timer2 () set_timer3 () set_timer4 () set_timer5 () ................. 279 set_ticks
() ..............................................................................................................................................................280
SEtup_sd_adc_calibration
(
)....................................................................................................................................280 set_sd_adc_channel ()
...........................................................................................................................................281
set_timerA
()
...........................................................................................................................................................281 set_timerB ()
...........................................................................................................................................................282
SEt_timerx ( )............................................................................................................................................................283
set_tris_x () .............................................................................................................................................................283
set_uart_speed () ...................................................................................................................................................284
setjmp () .................................................................................................................................................................285
SEtup_adc(mode)....................................................................................................................................................285
(setup_adc_ports )..................................................................................................................................................286
setup_adc_reference () ..........................................................................................................................................286
SEtup_at () ..............................................................................................................................................................287
setup_ccp1 () setup_ccp2 () setup_ccp3 () setup_ccp4 () setup_ccp5 () setup_ccp6 () ......................... 287
SEtup_clc1 () setup_clc2 () setup_clc3 () setup_clc4 () ...................................... ................................................ 289
setup_comparator () ...............................................................................................................................................290
(setup_counters )....................................................................................................................................................291
setup_cog ( )............................................................................................................................................................291
SEtup_crc ( ).............................................................................................................................................................292
setup_cwg () ...........................................................................................................................................................293
setup_dac ( )............................................................................................................................................................294
setup_dedicated_adc () ..........................................................................................................................................294
SEtup_external_memory ( )......................................................................................................................................295
setup_high_speed_adc () .......................................................................................................................................296
setup_high_speed_adc_pair () ...............................................................................................................................296
setup_hspwm_blanking ( ).......................................................................................................................................297
SEtup_hspwm_chop_clock () ..................................................................................................................................298
setup_hspwm_trigger () ..........................................................................................................................................299
setup_hspwm_unit () ..............................................................................................................................................299
SEtup_hspwm () setup_hspwm_secondary () ...................................................................................................300
SEtup_hspwm_unit_chop_clock () ..........................................................................................................................301
setup_lcd ( ).............................................................................................................................................................302
setup_low_volt_detect ( ).........................................................................................................................................303
setup_nco ( )............................................................................................................................................................303
setup_opamp1 () setup_opamp2 () setup_opamp3 () ......................................... ............................................... 304
setup_oscillator ( ) ...................................................................................................................................................305
setup_pga () ...........................................................................................................................................................305
setup_pid ( ).............................................................................................................................................................306
setup_pmp
(opcin,
address_mask)
.........................................................................................................................307
setup_psmc
(
).........................................................................................................................................................308
viii
viii

table de
Contenidos
SEtup_power_pwm () ..............................................................................................................................................309
setup_power_pwm_pins () .....................................................................................................................................311
setup_psp(option,address_mask)...........................................................................................................................311
setup_pwm1 () setup_pwm2 () setup_pwm3 () setup_pwm4 () ...................................... .............................. 312
(setup_qei ).............................................................................................................................................................313
setup_rtc () .............................................................................................................................................................313
setup_rtc_alarm () ..................................................................................................................................................314
setup_sd_adc ( )......................................................................................................................................................314
setup_smtx () ..........................................................................................................................................................315
setup_spi () setup_spi2 () .......................................................................................................................................316
setup_timer_A () .....................................................................................................................................................316
setup_timer_B () .....................................................................................................................................................317
setup_timer_0 () .....................................................................................................................................................318
setup_uart () ...........................................................................................................................................................318
setup_vref () ...........................................................................................................................................................319
setup_wdt ( )............................................................................................................................................................319
setup_zdc ( )............................................................................................................................................................320
shift_left ( )...............................................................................................................................................................320
shift_right ( ).............................................................................................................................................................321
dormir( ) ...................................................................................................................................................................322
sleep_ulpwu () ........................................................................................................................................................322
smtx_read () ...........................................................................................................................................................324
smtx_reset_timer ( ).................................................................................................................................................324
smtx_start ( )............................................................................................................................................................325
smtx_status () .........................................................................................................................................................325
smtx_stop ( )............................................................................................................................................................325
smtx_write () ...........................................................................................................................................................326
smtx_update ( )........................................................................................................................................................326
spi_data_is_in () spi_data_is_in2 () ........................................................................................................................327
spi_init () ..................................................................................................................................................................327
spi_prewrite
(datos);
..................................................................................................................................................328
spi_read
()
spi_read2 () ........................................................................................................................................328 spi_read_16
() spi_read2_16 () spi_read3_16 () spi_read4_16 () ...................................... .................................. 329 spi_speed
...............................................................................................................................................................330 spi_write ()
spi_write2 () .........................................................................................................................................330 spi_xfer (
)................................................................................................................................................................331
SPI_XFER_IN () ......................................................................................................................................................332
sprintf () ..................................................................................................................................................................332
sqrt () ......................................................................................................................................................................333
srand () ...................................................................................................................................................................333
FUNCIONES cadena estndar () memchr () memcmp () strcat () strchr () strcmp () strcoll (
) Strcspn () strerror () stricmp () strlen () strlwr () strncat () strncmp () strncpy () strpbrk ()
strrchr () strspn () strstr () strxfrm () 334
strcpy () strcopy ( )...................................................................................................................................................335
strtod () ...................................................................................................................................................................336
strtok () ...................................................................................................................................................................336
strtol () ....................................................................................................................................................................338
strtoul () ..................................................................................................................................................................338
intercambiar(
)....................................................................................................................................................................339 tolower
()
toupper
()
................................................................................................................................................339
touchpad_getc ( ).....................................................................................................................................................340
touchpad_hit ( )........................................................................................................................................................341
touchpad_state ( )....................................................................................................................................................342
tx_buffer_available () ...............................................................................................................................................342
tx_buffer_bytes().....................................................................................................................................................343
tx_buffer_full ( )........................................................................................................................................................344
va_arg () .................................................................................................................................................................344
va_end () ................................................................................................................................................................345
va_start...................................................................................................................................................................345
write_bank ( )...........................................................................................................................................................346
write_configuration_memory () ...............................................................................................................................347
write_eeprom () ......................................................................................................................................................347
ix

CCS C 10082015

write_external_memory () .......................................................................................................................................348
write_extended_ram ( )............................................................................................................................................349
write_program_eeprom () .......................................................................................................................................349
zdc_status () ...........................................................................................................................................................350
Estndar
C
Incluir
archivos
............................................................................................................................................351
errno.h
....................................................................................................................................................................351
float.h......................................................................................................................................................................351
Limits.h ....................................................................................................................................................................352
locale.h ...................................................................................................................................................................352
setjmp.h ..................................................................................................................................................................352
stddef.h...................................................................................................................................................................353
stdio.h .....................................................................................................................................................................353
stdlib.h ....................................................................................................................................................................353
acuerdo de licencia de software
.....................................................................................................................................355
ACUERDO
DE
LICENCIA
DE
SOFTWARE
...................................................................................................................355

VISIN DE CONJUNTO
C Compiler
PCB, PCM y PCH general
Technical ayuda
directorios
Formatos de archivo
Invocando el compilador de lnea de comandos

PCB, PCM y PCH general


The PCB, PCM, y PCH son compiladores separados. PCB es para cdigos de operacin de 12 bits, PCM es para
cdigos de operacin de 14 bits, y PCH es para microcontroladores cdigo de operacin PIC de 16 bits. Debido a
las muchas similitudes, los tres compiladores estn cubiertos en este manual de referencia. Caractersticas y
limitaciones que se aplican a los microcontroladores solamente se indican dentro. Estos compiladores estn
diseados especficamente para satisfacer las necesidades nicas del microcontrolador PIC. Esto permite a los
desarrolladores disear aplicaciones de software rpidamente en un lenguaje ms legible de alto nivel.
Los compiladores IDE (PCW, PCWH y PCWHD) tienen el ambiente exclusivo C Consciente de desarrollo integrado
de recopilacin, anlisis y depuracin en tiempo real. Otras caractersticas y herramientas integradas se pueden ver
lre.
when comparacin con un compilador ms tradicional C, PCB, PCM, y PCH tienen algunas limitaciones. Como
ejemplo de las limitaciones, no se permite la funcin de la recursividad. Esto es debido al hecho de que la PIC no
tiene pila para empujar las variables sobre, y tambin debido a la forma en que los compiladores de optimizar el
cdigo. Los compiladores pueden aplicar de manera eficiente construcciones normales C, operaciones de entrada /
salida, y operaciones de bits haciendo girar. Todos los tipos de datos de C normales son compatibles junto con
punteros a las matrices constantes, decimales de punto fijo, y las matrices de bits.

Instalacin
Inserte el CD-ROM, seleccione cada uno de los programas que desea instalar y siga las instrucciones
que aparecen en pantalla. Si el CD no se ejecuta el inicio automtico del programa de instalacin en el
directorio raz.
Para obtener ayuda para responder a las preguntas de la versin consulte
1

el tema de Ayuda "directorios". Las preguntas claves que pueden surgir:

overview

Mantenga Settings- A menos que usted est teniendo problemas para seleccionar esta
Link Compilador Extensiones- Si selecciona esta como las extensiones de archivo .c comenzar
el IDE compilador cuando se hace doble clic en los archivos con esa extensin.
archivos .hex iniciar el programa CCSLOAD. Esta seleccin puede ser un cambio
en el IDE.
Instalar MP LAB Plug In- Si va a utilizar MPLAB y no selecciona esta tendr
que descargar e instalar manualmente el plug-in.
Instalar ICD2, ICD3 ... conductores-seleccione si utiliza estas unidades
microchip ICD. Eliminar demostracin Files- siempre una buena idea
Instalar Windows 8 APP Le permite iniciar el IDE desde el men de inicio Windows 8.

Soporte tcnico
Compilador, software y actualizaciones de controladores disponibles para su descarga en:
maridottp: //www.ccsinfo.com/download
Los compiladores vienen con 30 o 60 das de derechos de descarga con la compra inicial. planes de mantenimiento
por un ao pueden ser adquiridos para el acceso a las actualizaciones, como se presenta.
The intenciones de los nuevos lanzamientos es proporcionar apoyo hasta a la fecha con una mayor facilidad de
uso y un mnimo, en su caso, la dificultad de transicin.
To asegurar que cualquier problema que pueda ocurrir se corrige de forma rpida y diligente, se recomienda enviar
un correo electrnico a: support@ccsinfo.com or utilizar el Asistente de Soporte Tcnico en PCW. Incluir la versin
del compilador, un esbozo del problema y adjuntar todos los archivos con la solicitud por correo electrnico. CCS se
esfuerza por responder oportuna y apoyo tcnico a fondo.
Technical El soporte est disponible por telfono en horario de oficina para las necesidades urgentes o si las
respuestas de correo electrnico no son adecuados. Por favor, llame al 262-522-6500 x32.

directorios
The compilador buscar los siguientes directorios de archivos de inclusin.
Directorios que aparecen en la lnea de comandos

Directorios especificados en el archivo .CCSPJT

The mismo directorio que los source.directories en el archivo ccsc.ini

De forma predeterminada, los archivos de compilacin se ponen en C: \ Archivos de programa \ PICC y los
programas de ejemplo se encuentran en
\ PICC \ Ejemplos. Los archivos de inclusin estn en PICC \ drivers. Los archivos de cabecera estn en el
dispositivo
PICC \ dispositivos.
The propio compilador es un archivo DLL. Los archivos DLL son DLL en un directorio por defecto en \ PICC \ DLL.
A veces es til para mantener mltiples versiones del compilador. Por ejemplo, un proyecto se puso a prueba con
una versin especfica, pero los proyectos ms nuevos usan una versin ms reciente. Al instalar el compilador se
le pide que versin de mantener en el PC. IDE usuarios pueden cambiar utilizando las versiones Ayuda> Acerca de
y haciendo clic en "otras versiones." usuarios de lnea de comandos utilizan Inicio> Todos los programas> PIC-C>
versin del compilador.
3

CCS C 10082015
Dos directorios se utilizan fuera del rbol PICC. Ambos se encuentran a Inicio> Todos los programas> PIC-C.

overview

1.) Un directorio de proyecto como ubicacin predeterminada para sus proyectos. Por defecto poner en "Mi
Documentos. "Este es un buen lugar para VISTA y hacia arriba.
2.) los valores de configuracin del usuario y los archivos PCWH cargado se mantienen en% APPDATA% \
PICC

Formatos de archivo
.c Este es el archivo de origen que contiene el cdigo fuente de usuario C.
.marido Tese son archivos de cabecera estndar o personalizados utilizados para definir pasadores,
regstrese, regstrese bits, funciones y directivas del preprocesador.
.pjt
This es el archivo de proyecto de Version 5 pre antiguo que contiene informacin relacionada con el
proyecto.
t
.ccspj

This es el archivo de proyecto que contiene informacin relacionada con el proyecto.

.lst

This es el archivo de lista que muestra cada lnea de cdigo fuente de C y el cdigo de ensamblaje
asociado generado para esa lnea.

.sym
.sta

Thelementos electrnicos en el archivo .LST pueden seleccionarse con el PCW en Opciones> Proyecto>
Archivos de resultados
instrucciones de montaje CCS estndar bsico
wITH Opcodes
Incluye el cdigo de operacin HEX para cada instruccin
OEstndar ld
Symbolic
Muestra los nombres de variables en lugar de direcciones
This es el smbolo del mapa que muestra la ubicacin de cada registro y qu programa de las variables se
almacenan en cada lugar.
Tharchivo de estadsticas e muestra la memoria RAM, ROM, y el uso PILA. Proporciona informacin
sobre los cdigos fuente estructurales y complejidades de texto utilizando Halstead y McCabe mtricas.

.TRE
Tharchivo de correo rbol muestra el rbol de llamadas. En l se detalla cada funcin y cules son las
funciones que llama junto con la ROM y
el uso de RAM para cada funcin.
.maleficio

The compilador genera archivos HEX estndar que son compatibles con todos los programadores.

The compilador puede dar salida 8-bet modo Hex de 16 bits y archivos binarios.
.cof

This es un cdigo binario que contiene la mquina y la informacin de depuracin.


Tharchivos de depuracin E puede ser la salida como archivo de Microchip MPLAB .COD por 1-5,
avanzada de archivos Transdata .MAP, archivo .COD ampliado para la depuracin de CCS o MPLAB 6
y hasta el archivo .xx .COF. Todos los formatos de archivo y extensiones se pueden seleccionar
opciones opcin asociaciones de archivos en Windows a travs de IDE.

.bacalao

This es un archivo binario que contiene informacin de depuracin.

.rtf

Thla salida E del generador de documentacin se exporta en un formato de archivo de texto


enriquecido que puede ser visto usando el editor RTF o Wordpad.

.rvf

The Rich Ver el formato es utilizado por el Editor de RTF en el IDE para ver el archivo de texto enriquecido.

.dgr

Tharchivo e .DGR es la salida de la mquina de diagrama de flujo.

.esym
.xsym

Tesarchivos electrnicos se generan para los usuarios del IDE. El archivo contiene identificadores y del
comentario. Estos datos se puede utilizar para la generacin de documentacin automtica y para los
ayudantes IDE.

.o

fichero objeto reubicable

.osym

This archivo se genera cuando el compilador est configurado para exportar un fichero objeto
reubicable. Este archivo es un archivo .sym por slo una unidad.
5

CCS C 10082015

.errar
.ccslo
anunc
io

archivo de error del compilador


utilizard para enlazar aplicaciones de Windows 8 a CCSLoad

overview

.ccssi
ow

utilizard para enlazar aplicaciones de Windows 8 al monitor del puerto serial

Invocando el compilador de lnea de comandos


The compilador de lnea de comandos se invoca con el comando siguiente:

CCSC [opciones] [cFileName]


Las opciones
vlidas:
+ FB
+ FM

Seleccione PCB (12 bits)


Seleccione PCM (14 bits)

+ FH

Seleccionar PCH (PIC18XXX)

No crear archivo de depuracin


archivo de formato estndar de depuracin
+ DM .COD
Formato de archivo de depuracin .MAP

+ Yx

Optimizacin nivel x (0-9)

+ DC
+ DF

ExpandeFormato de archivo de depuracin d


.COD
Permite a la salida de un archivo COFF

+ FS

Seleccionar SXC (SX)

+ EO

depuracin.
old formato de archivo de error

+ ES

archivo de error estndar

-T

No generar un archivo de rbol

+T

Crear rbol de llamadas (.TRE)

-UN

No crear archivo de estadsticas (.STA)

+A

Crear archivo de estadsticas (.STA)

-EW

Suprimir las advertencias de (usar con + EA)

+ EW

Mostrar mensajes de advertencia

-MI

ONLPida el primer error

+ EA

Mostrar todos los mensajes de error y las


advertencias

EX +

formato de mensaje de advertencia / error


utiliza GCC formato "(compatible con el
"segundorief
editor de GCC
ENVIam-)

-RE
+ DS

The xxx en los siguientes son opcionales. Si se incluye que establece la extensin de archivo:
+ LNxxx lista de archivos normal + O8xxx archivo de salida HEX Intel de 8 bits
+ LSxxx

METRO+ OWxxx archivo de salida Intel HEX 16 bits archivo de lista de formatos PASM

+ LOxxx

olarchivo de salida binaria d archivo de lista de MPASM + OBxxx

+ LYxxx

Lista simblica archivo -O No crear archivo de objeto

-L

No crear archivo de lista

+P

Mantenga la ventana de estado de compilacin despus de compilacin

+ Pxx

Mantenga la ventana de estado para xx segundos despus de compilacin

+ PN

Mantenga la ventana de estado slo si no hay errores

+ PE

Mantenga la ventana de estado slo si hay errores

+Z

Mantener archivos de memoria virtual en el disco despus de compilar

+ DF

archivo COFF depuracin

I + = "..."

Igual que I = "..." A menos que la lista de rutas se aade a la lista actual

I = "..."

Conjunto incluye el camino de bsqueda de


directorio, por ejemplo: I = "C: \ PICC \
ejemplos; c: \ PICC \ myincludes"
Si no, yo = aparece en la lnea de comandos del archivo .PJT ser utilizada para suministrar la
incluyen rutas de archivos.

-P

Cerrar ventana despus de compilar compilacin est completa

+M

Genepondra un archivo de smbolos (.SYM)


7

CCS C 10082015

-METRO

No crear archivo de smbolos

+J

Crear un archivo de proyecto (.PJT)

-J

No crear archivo de Proyecc

+ CIE

Compilar para su uso con un ICD

# Xxx = "yyy"Establecer un #define global para xxx id con un valor de yyy, ejemplo:
#depurar= "True"
+ Gxxx = "yyy"

Igual que el # xxx = "yyy"

+?

Abre un archivo de ayuda

-?

Igual que +?

+ STDOUT

UNEDtputs errores en la salida estndar (para su uso con los editores de terceros)

+ SETUP

Instalar CCSC en MPLAB (sin compilacin se hace)

sourceline =

Permite una lnea de fuente que se inyecta en el inicio del archivo de origen.
Ejemplo: CCSC + FM myfile.c sourceline = "# include <16F887.h>"

+V

Mostrar la versin del compilador (sin compilacin se hace)

+Q

Mostrar todos los dispositivos vlidos en la base de datos (sin compilacin se hace)

A / carcter puede ser usado en lugar de un carcter +. Las opciones predeterminadas son las siguientes:
+ FM + ES + J + DC + Y9 -T -A + H + + LNlst O8hex -P -Z
Si @nombre del archivo aparecers en la lnea de comandos CCSC, las opciones de lnea de comandos
se pueden leer desde el archivo especificado. Los parmetros pueden aparecer en mltiples lneas en
el archivo.
Si existe el CCSC.INI archivo en el mismo directorio que CCSC.EXE, a continuacin, los parmetros de lnea de
comandos se leen de ese archivo antes de que se procesan en la lnea de comandos.
Ejemplos:
CCSC FM + C: \ PICSTUFF \
TEST.C CCSC + FM + P + T
TEST.C

PCW general
ThPCW e IDE proporciona al usuario un fcil utilizar el editor y el medio ambiente para el desarrollo
de aplicaciones de microcontroladores. El IDE se compone de muchos componentes, que se
resumen a continuacin. Para obtener ms informacin y detalles, utilice la ayuda> PCW en el
compilador ..
Hombrey de estas ventanas se puede cambiar de sitio y se acopl en diferentes posiciones.

overview

Men
Todas las funciones del IDE estn en el men principal. El men principal se
divide en secciones separadas, haga clic en una seccin ( 'Editar', 'Buscar',
etc) para cambiar la seccin. Haciendo doble clic sobre la seccin, o haciendo
clic en la flecha tipo de la derecha, har que el men para minimizar y ocupan
menos espacio.

miDitor aqu
Todos los archivos abiertos se enumeran aqu. El archivo activo, que es el
archivo que se est editando, se le da un toque de luz diferente que los otros
archivos. Al hacer clic en la X

CCS C 10082015

on la derecha cierra el archivo activo. hacer clic derecho en una ficha da un


men de acciones tiles para ese archivo.

Deslice fuera
Windows

de

'Archivos 'muestra todos los archivos activos en el proyecto actual.


espectculos 'Proyectos' todos los proyectos recientes trabajadas.
Identificadores muestra '' todas las variables, definiciones, prototipos y los
identificadores en el proyecto actual.

Editor
Theditor de correo es la principal rea de trabajo de la IDE y el lugar donde el
usuario introduce y edita el cdigo fuente. hacer clic derecho en esta rea da un
men de acciones tiles para el cdigo que se est editando.

La depuracin de Windows
Control depurador se hace en las ventanas de depuracin. Estas
ventanas permiten establecer puntos de corte, solo paso, variables
y mucho mas.

CCS C 10082015

Barra de estado
Thbarra de estado e da al usuario informacin til, como la posicin del cursor,
siendo editadas proyecto abierto y archivo.

UNEDMensajes tput
UNEDtput mensajes se muestran aqu. Esto incluye los mensajes del compilador
durante una generacin, los mensajes de la herramienta de programador
durante la programacin o los resultados de descubrimiento y bsqueda.

overview

PROGRAMA SINTAXIS
OvEstructura erall
Un programa se compone de los cuatro elementos siguientes en un archivo:
Comentario
Directiva de preprocesador
Definicin de datos
la definicin de funciones
declaracion
es
expresiones
Cada programa de C debe contener una funcin principal, que es el punto de partida de la ejecucin del programa.
El programa se puede dividir en mltiples funciones de acuerdo con el propsito y las funciones que se podra
llamar de las funciones principales o el sub. En un gran proyecto funciones tambin se pueden colocar en diferentes
archivos de C o archivos de cabecera que pueden ser incluidos en el archivo de C principal al grupo de las
funciones relacionadas por su categora. CCS C tambin requiere incluir el archivo de dispositivo apropiado
utilizando directiva #include para incluir la funcionalidad especfica del dispositivo. Tambin hay algunas directivas
del preprocesador como
#fusibles para especificar los fusibles para el chip y #use retardo para especificar la velocidad de reloj. Las
funciones contienen las declaraciones de datos, definiciones, declaraciones y expresiones. El compilador
tambin proporciona un gran nmero de estndar C
libraries, as como otros controladores de dispositivos que se pueden incluir y se utilizan en los programas. CCS
tambin ofrece un gran nmero de funciones integradas para acceder a los distintos perifricos incluidos en el
microcontrolador PIC.

Comentario
comentarios Comentarios - Standard
Un comentario puede aparecer en cualquier lugar dentro de un archivo, excepto dentro de una cadena entre
comillas. Personajes entre / * y * / son ignorados. Los caracteres despus de un // hasta el final de la lnea se
ignoran.
Comentarios sobre generador de documentacin
The compilador reconoce comentarios en el cdigo fuente de la base de ciertos mrgenes de beneficio. El
compilador reconoce estos tipos especiales de los comentarios que luego pueden ser exportadas para uso en el
generador de documentacin. La utilidad generador de documentacin utiliza una plantilla seleccionable por el
usuario para exportar estos comentarios y crear un documento de salida con formato
yon Formato de texto del archivo. Esta utilidad slo est disponible en la versin IDE del compilador. Las marcas de
cdigo fuente son los siguientes.
GRAMOlobulares Comentarios
Tese se nombran los comentarios que aparecen en la parte superior de su cdigo fuente. Los nombres de
comentario entre maysculas y minsculas y deben coincidir con el caso utilizado en la plantilla de
documentacin.
Por ejemplo:
// * OBJETIVO Este programa implementa un gestor de arranque.
// * El autor John Doe
A '//' seguido de un * le dir al compilador que la palabra clave que le sigue ser el comentario con nombre. El
comentario real que sigue ser exportado como un prrafo al generador de documentacin.
mulLneas de comentario tiple se pueden especificar mediante la adicin de un: despus de la *, por lo que el
compilador no concatenar los comentarios
11

que siguen. Por ejemplo:


/ **: CAMBIOS
05/ 16 de bucle / 06 Agregado PWM
05/27.06 Arreglado un problema intermitente
*/

12

CCS C 10082015

Variable Comentarios
Un comentario variable es un comentario que aparece inmediatamente despus de una declaracin de variables.
Por ejemplo:
ent segundos; // Nmero de segundos desde la ltima entrada
long da, // El da actual del mes, / * Mes actual * /
long ao; // Ao

funcin Comentarios
Un comentario funcin es un comentario que aparece justo antes de una declaracin de la funcin. Por ejemplo:
// La siguiente funcin inicializa salidas
function_foo void ()
{
init_outputs ();
}
Funcin denominada Comentarios
The nombrado comentarios se pueden utilizar para funciones de una manera similar a lo global Comentarios.
Estos comentarios aparecen antes de la funcin, y los nombres se exportan como est al generador de
documentacin.
Por ejemplo:
// * Finalidad Esta funcin muestra los datos en formato
BCD display_BCD void (byte n)
{
monitor_rutina();
}

secuencias trigraph
The compilador acepta tres secuencias de caracteres en lugar de algunos caracteres especiales que
no estn disponibles en todos los teclados de la siguiente manera:
Secuencia Igual
?? =

?? (

?? /

??)

?? '

?? <

??!

??>

?? -

Mltiples archivos de proyecto


when hay varios archivos en un proyecto de todos ellos se pueden incluir el uso de la # include en el
archivo principal o los sub-archivos para utilizar el enlazador automtico incluido en el compilador.
Todos los archivos de cabecera, norma
libraries y archivos del controlador se pueden incluir el uso de este mtodo para vincular automticamente.
Por ejemplo: si usted tiene main.c, x.c, x.h, y.c, y.h y z.c y archivos z.h en su proyecto, se puede decir en:
13

programa de sintaxis

mamin.c #include <archivo de cabecera del dispositivo>


#incluir <x.c>
#incluir <y.c>
#incluir <z.c>

incgnita.do

#include <x.h>

y.do

#include <y.h>

z.do

#include <z.h>

En este ejemplo hay 8 archivos y una unidad de compilacin. Main.c es el nico archivo compilado.
Tenga en cuenta que la directiva #module se puede utilizar en cualquier archivo de inclusin para limitar la
visibilidad del smbolo en ese archivo. Para compilar por separado los archivos, consulte la seccin
"mltiples unidades de compilacin".

Mltiples unidades de compilacin


mulUnidades de compilacin tiple slo se admiten en los compiladores IDE, PCW, PCWH, PCHWD y
PCDIDE. Cuando se utilizan varias unidades de compilacin, se debe tener cuidado de que los
comandos pre-procesador que controlan la compilacin son compatibles en todas las unidades. Se
recomienda que las directivas tales como
#FUSIBLES, #Utilice y el archivo de cabecera de todo dispositivo ponen en un archivo de inclusin
incluido por todas las unidades. Cuando una unidad se compila se dar salida a un archivo de fichero
objeto reubicable (* .o) y el smbolo (* .osym).
losre varias maneras de lograr esto con el compilador de C de CCS. Todos estos mtodos y
proyectos de ejemplo estn incluidos en el MCU.zip en el directorio de ejemplos del
compilador.

Ejemplo Programa Completo


Aqu est un ejemplo de programa con la explicacin usando CCS C para leer muestras adc sobre RS232:

//////////////////////////////////////////////
/////////
/// Este programa muestra los valores mnimo y mximo de
30, ///
/// comentarios que explica lo que hace el
programa, ///
/// y las muestras A / D travs de
la interfaz RS-232. ///
//////////////////////////////////////////////
/////////
# include <16F887.h> //
directiva de preprocesador que
//
14

selecciona el chip de PIC16F887

15

CCS C 10082015

#fuses NOPROTECT // Cdigo de proteccin apaga


#use retardo (cristal = 20 MHz) //
directiva de preprocesador que
//
especifica el tipo de reloj y la velocidad
RS232 #Utilice (baudios = 9600, XMIT = PIN_C6, VN = PIN_C7) //
directiva de preprocesador que
//
incluye las bibliotecas RS232
void main () {//
funcin principal
int i, valor mnimo, mximo; //
declaracin de variables locales
printf ( "Muestreo:"); //
funcin printf incluido en el
//
Biblioteca RS232
setup_port_a (ALL_ANALOG); // Una
configuracin / D integrado en funcionessetup_adc (ADC_CLOCK_INTERNAL); //
reloj interno siempre funciona
set_adc_channel (0); //
Ajuste el canal de AN0
do {// hacer
siempre comunicado
min = 255;
max =
0;
for (i = 0; i <= 30; i ++) {// Tomar 30
muestras
Delay_ms (100); //
Esperar una dcima de segundo
valor = read_adc (); //
A / D Lea funciones- incorporado
si (valor <min) //
Encuentra la muestra ms pequea
min = valor;
si (valor> max) //
Encuentra ms grande
muestra de
max =
valor;
}
printf ( "\ n \ RMIN: 2X% Max:
2X% \ n \ r ", min, max);
} While (true);
}

14

ESTADOS
declaraciones
Ejemplo DECLARACIN
si (Expr) prop; [Else prop;]

si (x == 25)
x =
0;
otra cosa
x = x
+ 1;

while (Expr) prop;

mientras que (get_rtcc ()! = 0)


putc ( "n");

hacer sTMT while (expr);

para (Expr1; expr2; expr3) prop;


SOpicar (Expr) {
case cExpr: prop; // Uno o ms
casos
[Predeterminado: prop]
...}

regreso [Expr];

(5); ir etiqueta;

do {
putc (c = getc ());
} While (c =
0!);
for (i = 1; i <= 10; ++ i)
printf ( "% u \ r \ n", i);
interruptor (cmd) {
0 de caso: printf ( "cmd
0 "); break;
Caso 1: printf ( "cmd
1 "); break;
default: printf (
"malo cmd"); break;
}
retorno
goto

bucle; etiqueta: Sentencia;


loop: i ++; romper;romper; doontinuac;continuar; exPR;i =
1;
;;
{[sTMT]}

{A = 1;
b = 1;}

Cero o ms
declaracin;

int i;

norteota: Los productos en [] son opcionales

15

CCS C 10082015

si
if-else
The if-else se utiliza para tomar decisiones
comunicado. La sintaxis es la siguiente:
si (Expr)
prop-1;
[milse
prop-2;]
Thse evala e expresin; si bien es cierto prop-1 est hecho. Si es falsa then prop-2 que se hace.
milse-si
This se utiliza para tomar decisiones en
mltiples sentidos. La sintaxis es la
siguiente:
si (Expr)
STMt;
[Ms si (Expr)
STMt;
]
...
[ms
STMt;]
The expresiones se evalan en orden; si alguna expresin es verdadera, la sentencia asociada se ejecuta y se
termina la cadena. Si ninguna de las condiciones son satisfechas se ejecuta la ltima parte else.
Ejemplo:

si (x == 25)
x = 1;
ms
x = x + 1;
Ver tambin: declaraciones

WHile
Mientras yos utilizado como una sentencia
de bucle / iteracin. La sintaxis es la
siguiente:
while (Expr)
sesultado
s
The expresin se evala y se ejecuta la sentencia hasta que se convierte en falsa en cuyo caso la ejecucin
contina despus de la instruccin.
Ejemplo:

mientras que (get_rtcc ()! = 0)


putc (
"n");
Ver tambin: declaraciones

16

declaracion
es

do-while
do-while: Difiere de mientras unrepara lavabop en esa condicin de la
terminacin se comprueba en la parte inferior del bucle en lugar de en la
parte superior y por lo que el cuerpo del bucle siempre se ejecuta al menos
una vez. La sintaxis es la siguiente:
hacer
stacuenta
de
prdidas
while (Expr);
Thcomunicado por correo se ejecuta; se evala la expr. Si es cierto, el mismo
se repite y cuando se convierte en falsa termina el bucle.
Ver tambin: declaraciones ,whilmi

para
por yos tambin se utiliza como una
sentencia de bucle / iteracin. La sintaxis es
la siguiente:
para (Expr1; expr2; expr3)
sesultados
The expresiones son sentencias de control de bucle. expr1 es la inicializacin,
expr2 es la evaluacin de terminacin y expr3 es re-inicializacin. Cualquiera
de ellos puede ser
omitted.
Ejemplo:

for (i = 1; i <= 10; ++ i)


printf ( "% u \ r \ n", i);
Ver tambin: declaraciones

SOpicar
SOpicar yoTambin es un fabricante de decisin
especial de mltiples vas. La sintaxis es la
siguiente
SWItch (expr) {
case const1: secuencia prop;
segundoreak;
... [Por
defecto:
prop]
}
This pruebas si la expresin coincide con uno de los valores constantes y ramas en consecuencia.
Si ninguno de los casos estn satisfechos se ejecuta el caso predeterminado. La ruptura provoca una salida
inmediata, de lo contrario el control salta al siguiente caso.
17

CCS C 10082015
Ejemplo:

interruptor (cmd) {
caso 0: printf ( "cmd 0");
romper;

18

declaracion
es

Caso 1: printf ( "cmd 1");


romper;
default: printf ( "malo cmd");
romper;
}
Ver tambin: declaraciones

regreso
regreso
UNregreso sesultados permite una salida inmediata de un interruptor o un bucle o funcin y tambin devuelve
un valor.
Thsintaxis de correo es:
regreso(Exp
r); Ejemplo:

retorno (5);
Ver tambin: declaraciones

ir
ir
The instruccin goto causa un salto incondicional a la etiqueta.
Thsintaxis de correo es:
ir etiqueta;
Una etiqueta tiene la misma forma que un nombre de variable, y es seguido por dos puntos.
Los goto se usan con moderacin, en todo caso.
Ejemplo:

goto bucle;
Ver tambin: declaraciones

etiqueta
label
The etiquetar un Goto
salta a. La sintaxis es la
siguiente:
etiqueta:
Stmnt;
Ejemplo:

loop: i ++;
19

CCS C 10082015
Ver tambin: declaraciones

20

declaracion
es

romper
romper.
Thcomunicado por correo ruptura se utiliza para salir de un bucle de control. Proporciona una salida
temprana del tiempo, para, hacer y el interruptor.
Thsintaxis e es
rompe
r;
Hace que el bucle ms interno (o conmutador) que se salieron
inmediatamente. Ejemplo:

romper;
Ver tambin: declaraciones

continuar
Thmidoontinuac statemente hace que la siguiente iteracin del bucle de encerramiento
(Aunque, para, Do) para comenzar. La sintaxis es la siguiente:
doontinuac;
Hace que la parte del ensayo, se ejecutar inmediatamente en caso de tareas y al mismo tiempo, y
el control pasa a la etapa de re-inicializacin en caso de que para.
Ejemplo:

continuar;
Ver tambin: declaraciones

expr
Thsintaxis de correo es:
expr;
Ejemplo:

i = 1;
Ver tambin: declaraciones

21

CCS C 10082015

;
Declaracin: ;
Ejemplo:

;
Ver tambin: declaraciones

prop
Cero o ms punto y coma separa.
La sintaxis es la siguiente:
{[sTMT]}
Ejemplo:

{A = 1;
b =
1;}
Ver tambin: declaraciones

22

EXPRESIONES
constantes

123

reecimal

123l

Fuerzas tipo de registro y larga (UL tambin permiti)

123LL

Tipo de fuerzas a & int32;

0123

OCTAL

0x123

MARIDOex

0b010010

Binario

123.456

Punto flotante

123F

Punto Flotante (FL tambin permiti)

123.4E-5

Coma flotante en notacin cientfica

'incgnita'

doharacter

'\ 010'

OCarcter CTAL

'\ XA5'

MARIDOex Carcter

'\do'

SCarcter pecial. Donde C es uno de:


\RSS n Lnea - Igual que \ x0a
\RSS r Retorno - Igual que \ x0d
\t TAB - Igual que \ x09
\b Retroceso - Igual que \ x08
\Forma f Dientes - Igual que x0c
\una Campana - Igual que \ x07
\v Espacio Vertical - Igual que \ x0b
\? Signo de interrogacin - Igual que \ x3f
\'Comilla simple - Igual que \ x22
\"Doble Cita - Igual que \ x22
\\ A Single Backslash - Igual que \ X5c
string (null se aade al final)

"abcdef "

21

CCS C 10082015

identificadores

A B C DmiTp 32 caracteres comenzando con un no numrico. Los caracteres vlidos son


A-Z, 0-9 y _ (subrayado). Por defecto no caso de uso sensible
Numero de caso para encender.
ID [X]Single Subndice
ID [X] [X]Multiples subndices
ID.IrestrUCTURA o unin de referencia
ID-> IrestrUCTURA o unin de referencia

OPERADORES
+ Operador de suma
+=La adicin operador de asignacin, x + = y, es el mismo que x = x + y
[]
operador de matriz subscrip
y=
Bit a bit y asignacin del operador, y x = y, es lo mismo que x =
X&Y
yoperador de direccin
yY el operador bit a bit
^=
Bitwise exclusiva o asignacin operador, x = y ^, es el mismo
que x = x ^ y
^Bit a bit exclusivo u operador
l=
Bitwise incluido o asignacin operador, xl = y, es el mismo
que x = XLY
lBit a bit incluido u operador
?:
operador de expresin condicional
-Decremento
/=
operador de asignacin Divisin, x / = y, es el mismo que x = x
/y
/operador de divisin
==Igualdad
>Mayor que el operador
>=Mayor o igual que el operador
++Incremento
*operador de indireccin
22

Expressions

!=Desigualdad
<<=Left operador de asignacin de turno, x = y <<, es el mismo que x = x << y
<Less de operador
<<Lefoperador t Shift
<=Less que o igual a operador
&&
Iniciar sesiniCal y operador
!Iniciar sesinoperador de negacin ical
ll
Iniciar sesinical operador OR
.member operador de estructuras y uniones
%=modules operador de asignacin x% = y, es el mismo que x = x% y
%moduLes operador
*=
Multiplication operador de asignacin, x * = y, es el mismo que x =
x*y
*Muoperador ltiplication
~Uno de operador de complemento
>>=Asignacin de desplazamiento a la derecha, x = y >>, es el mismo que x = x >> y
>>operador de desplazamiento a la derecha
->operacin de la estructura del puntero
-=Resta operador de asignacin, x- = y, es el mismo que x = x y
-operador de resta
tamao de

reetermines tamao en bytes del operando


Ver tambin: Prioridad de los operadores

Operator Precedencia
PiN DESCENDING PRIORIDAD
(expr)
Exor ++
++ expr
expr++

expr-> expr

expr.expr

- -expr

expr - -

!expr

~expr

+expr

-expr

(type) expr

*expr

yvalor

expr*expr

expr/expr

expr%exPR

tamao
de(tyEducaci

expr + expr

expr-expr

<< expr expr


expr <expr

expr>>expr
expr<=expr

Comosociativity

expr>expr

expr> =expr

De izquierda a
derecha
De
izquierda a
derecha
Aparejoht a izquierda
Aparejoht a izquierda
De izquierda a
derecha
De izquierda a
derecha
De izquierda a
derecha
De izquierda a
derecha
23

CCS C 10082015

expr==expr

De izquierda a
derecha
De izquierda a
derecha
De izquierda a

expr! =expr

expr y expr
expr expr ^

expr ||expr

derecha
De izquierda a
derecha
De izquierda a
derecha
De izquierda a

expr? expr: expr

derecha
Aparejoht a izquierda

expr |expr
&& expr expr

lvalor =expr

lvalue+ =expr

lvalue- =expr

Aparejoht a izquierda

lvalor* =expr

lvalue/ =expr

lvalue% =expr

Aparejoht a izquierda

lvalor>> =expr

lvalumi<<
=
lvalue| =expr

lvaluey =expr

Aparejoht a izquierda

lvalor^ =expr

expr, expr
(OPERADORES en la misma lnea son iguales en precedencia)

24

Aparejoht a izquierda
De izquierda a
derecha

DATOS DEFINICIONES
Las definiciones de datos
This seccin describe lo que los tipos de datos y especificadores bsicas y de cmo las variables se
pueden declarar el uso de esos tipos. En C todas las variables deben ser declaradas antes de ser
utilizadas. Pueden definirse dentro de una funcin (local) o fuera de todas las funciones (global). Esto
afectar a la visibilidad y la vida de las variables.
Una declaracin consiste en un calificador tipo y un especificador de tipo, y es seguido por una lista
de una o ms variables de ese tipo.
Por ejemplo:

int a, b, c, d;
mybit e, f;
mybyte g [3]
[2]; char * h;
colores j;
datos struct data_record [10];
static int i;
j larga externo;
Las variables tambin se pueden declarar junto con las definiciones de la
especialtipos. Por ejemplo:

colores enum {rojo, verde = 2, azul} i, j, k; // Colores es el tipo


de enumeracin y i, j, k
// Son variables de ese tipo

VER TAMBIN:
TypLos especificadores e / Tipos bsicos
Type Calificadores
Tipos enumerados
Estructuras y
Uniones de typedef
Registros con nombre

TyPE especificadores
Tipos basicos
Tipo-Specifier
INT1

tamao
nmero de 1 bit

No firmado
0-1

INT8

nmero de 8 bits

Int16

1nmero de 6
bits

Distan
firmado cia
N/A

dgitos
1/ 2

0-255

-128-127

2-3

0 a 65535

-32,768-32767

4-5

25

CCS C 10082015

int32

3nmero 2 bits

0-4294967295

float32

3flotador de 2 bits

-1.5 X 1045 x 1038 a la


3.4

short

ent1

doHar

unsigned INT8

int

enT8

largo

ent16

largo largo

ent32

flotador

float32

doble

N/A

-2147483648-2147483647

9-10
7-8

Nota: Todos los tipos, excepto carbn de flotacin, por defecto son no-firmado; sin embargo, puede
ser precedido por firmada o no (excepto Int64 slo podr ser firmado). A corto y largo puede tener la
palabra clave INT seguirlas sin efecto. Tambin vea #TYPE para cambiar el tamao predeterminado.
BREVE INT1 es un tipo especial que se utiliza para generar cdigo muy eficiente para operaciones de
bits y de E / S. Las matrices de bits (INT1 o corta) en la RAM son ahora soportados. No se permiten
los punteros a los bits. Los archivos de cabecera dispositivo contienen define para BYTE como un
INT8 y BOOLEANA como INT1.
Los nmeros enteros se almacenan en formato little endian. El LSB est en la direccin ms
baja. formatos de flotador se describen en las preguntas ms comunes.
Ver tambin: Declaraciones, Type Calificadores,Los tipos enumerados,Estructuras y Uniones,typedef,Llamado
registros

TyPE Calificadores
Tipo-ndice
sTatic

unuto
predeterminado y AUTO

Variable es activa a nivel mundial e inicializado a 0. Slo se puede


acceder desde esta unidad de compilacin.
existe Variable slo mientras el procedimiento est activo. Este es el valor
de solterad no ser utilizado.

doble

Es una palabra reservada, pero no es un tipo de datos compatible.

exgolondrina de mar
Exla variable externa se utiliza con mltiples unidades de
compilacin. No se asigna almacenamiento.
Se utiliza para hacer de otra manera fuera del alcance de los datos
accesibles. tiene que haber una definicin no extern a nivel mundial en alguna
unidad de compilacin.
registro
_ Fija (n)
26

Se permite como calificador sin embargo, no tiene ningn efecto.


Crea un nmero decimal de punto fijo donde norteyos Cuntas cifras

decimales para poner en prctica.

Las definiciones
de datos

27

CCS C 10082015

no firmado
se especifica.

Los datos son siempre positivos. Este es el tipo de datos predeterminado si no

signed

Los datos pueden ser negativo o positivo.

vpoco voltil

Contares el optimizador de compilador que esta variable se puede cambiar


en cualquier momento durante la ejecucin.

doonSt

Los datos son de slo lectura. Dependiendo de la configuracin del


compilador, este calificativo slo puede hacer que los datos de slo lectura -y /
OR- puede colocar los datos en la memoria del programa para ahorrar
espacio. (Ver #DEVICE const =)

ROM

Fuerzas de datos en la memoria del programa. Los punteros pueden utilizarse


para estos datos, pero que no se pueden mezclar con los punteros de
memoria RAM.

vOID

Built-in tipo bsico. Tipo de vaco se utiliza para indicar que no hay tipo
especfico en los lugares donde se requiere un tipo.

solo lectura

WRItes a esta variable debe ser dis-permitidos

_BIF
lnea

Se utiliza para compilador construida en prototipos de funciones en la misma

unttribute

establece diferentes unttributes

Ver tambin: Declaraciones, Type especificadores,EnumeLos tipos nominales,Estructuras y Uniones,typedef,Registros con


nombre

Los tipos enumerados


minum enumeracin Tipo: crea una lista de constantes enteras.
minum

[Id] {[id [= cExpr]]}

Ene o ms separados por comas


The Identificacin despus minum yos creado como un tipo lo suficientemente
grande para la constante ms grande en la lista. Los identificadores de la lista
se crean cada una como una constante. Por defecto, la primera Id se pone a
cero y se incrementa en uno. Si a = cExpr sigue un identificador que de
identificacin tendr el valor de la expresin constante de una d la siguiente
lista aumentar en uno.
Por ejemplo:
colores enum {rojo, verde = 2, azules};

28

// Roja ser 0, verde ser 2 y


// Azul ser de 3

Las definiciones
de datos
Ver tambin: Declaraciones, Type especificadores,Type Calificadores,Estructuras y Uniones,typedef,Registros con nombre

29

CCS C 10082015

Estructuras y uniones
struct sTipo tructure: crea una coleccin de una o ms variables,
posiblemente de diferentes tipos, agrupados juntos como una sola unidad.
struct[*] [Id] {tipo de clasificacin [
*] Identificacin [: los bits]; } [carn de identidad]

Ene o ms,
punto y
coma separa

Zmiro
or ms

Por ejemplo:

data_record struct {
int a [2];
int b: 2; / * 2 bits * /
int c: 3; / * 3 bits * /
int d;
Data_var}; // Data_record es un tipo de estructura
// Data_var es una variable

Unin Tipo: contiene objetos de diferentes tipos y tamaos, con la pista de


mantenimiento compilador de los requisitos de tamao y alineacin.
Proporcionan una manera de manipular diferentes tipos de datos en una sola
rea de almacenamiento.
Unin[*] [Id] {tipo de clasificacin [*] carn de identidad

Ene o ms,
punto y
coma separa

[: Los bits]; } [carn de identidad]

Cero
or ms

Por ejemplo:

u_tab union
{int ival;
lval larga;
FVAL
flotar;
}; // U_tag es un tipo de unin que puede contener un flotador

Ver tambin: Declaraciones, Type especificadores,Type Calificadores,Los tipos enumerados,typedef,Nombrere


registros

30

Las definiciones
de datos

typedef
Si typedef yos se utiliza con cualquiera de los tipos bsicos o especiales que
crea un nuevo nombre de tipo que se puede utilizar en las declaraciones. El
identificador no asigna espacio, sino ms bien se puede utilizar como un
especificador de tipo en otras definiciones de datos.
typedef

[Tipo de clasificacin] [tipo especificador] [declarador];

Por ejemplo:

typedef int mybyte;

typedef corta mybit;

// Mybyte se puede
declaracin de
// Especificar el
// Mybyte se puede
declaracin de
// Especificar el

utilizar en la
tipo int
utilizar en la

tipo int
typedef enum {rojo,
verde, azul = 2} colores; // colores se pueden utilizar para declarar
// Variable de este tipo de
enumeracin

Ver tambin: Declaraciones, Type especificadores,Type Calificadores,Estructuras y Uniones,EnumeLos


tipos nominales,Registros con nombre

No de datos RAM Definiciones


CCS C compilador tambin proporciona una clasificacin personalizada
addressmorewhich se puede utilizar para definir una regin de memoria que puede
ser RAM, EEPROM programa, EEPROM de datos o de memoria externa.
Addressmod sustituye a la ms antigua typemore(Con una sintaxis diferente).
Thel uso del correo es: addressmod (nombre, read_function,
write_function, start_address, end_address, accin);

where el read_function y write_function deben estar en blanco para la memoria


RAM, o de otra memoria debe ser el siguiente prototipo:
// Leer procedimiento para la lectura de n bytes de la memoria a
partir de la ubicacin addr
void read_function (direc int32, INT8 * carnero, nbytes int){
}
//escrituraprocedimiento electrnico para la escritura de n
bytes de la memoria a partir de la ubicacin addr
void write_function (direc int32, INT8 * carnero, int nbytes) {
}
for RAM el argumento de emisin puede ser cierto si memoria RAM no utilizada en esta
rea puede ser utilizado por el compilador para las variables estndar.

mijemplo:
31

CCS C 10082015

void DataEE_Read (direc int32, INT8 * carnero, int bytes) {


ent i;
for (i = 0; i <bytes; i ++, Ram ++, addr ++)
* Ram = read_eeprom (dir);
}
void DataEE_Write (direc int32, INT8 * carnero, int bytes) {
ent i;
for (i = 0; i <bytes; i ++, Ram ++, addr ++)
write_eeprom (dir, * ram);
}
addressmod (DataEE, DataEE_read, DataEE_write, 5,0xff);
// Definira una regin llamada entre DataEE
// 0x5 y 0xff en la EEPROM chip de datos.
void main (void)
{
enprueba de la t DataEE;
ent x, y;
x = 12;
test = x; // Escribe x en la memoria EEPROM de datos
y = prueba; // Lee la EEPROM de datos
}

Nota: Si el rea se define en la memoria RAM y luego leer y escribir no se requieren


funciones, las variables asignadas en la regin de memoria definida por el addressmod
pueden tratarse como una variable regular en todas las expresiones vlidas. Cualquier
estructura o tipo de datos se puede utilizar con un addressmod. Los punteros tambin
se puede hacer a un tipo de datos addressmod. El tipo
directiva se puede utilizar para hacer que esta regin de memoria por defecto para las asignaciones variables.
Thsintaxis de correo es:
#typcorreo por defecto = addressmodname // todas las declaraciones
de variables que
// Seguir utilizar esta memoria
region
orte
#typcorreo por defecto = // vuelve al modo por defecto

Por ejemplo:
Typcorreo por defecto = // emi emi es el nombre definido
addressmod
chatampn
r
[8192];
#include <memoryhog.h>
#typcorreo por
defecto =

El uso de memoria de programa


para Data
CCS C Compiler proporciona algunas maneras diferentes de utilizar la memoria del programa para los datos. Las
diferentes formas se analizan a continuacin:
Los
datos
constantes:
ThmidoonSt califier colocar las variables en la memoria de programa. Si la palabra clave doonSt yos utilizado
antes del identificador,
el identificador es tratada como una constante. Las constantes deben ser inicializados y no se pueden cambiar en
tiempo de ejecucin. Esta es una manera fcil de crear tablas de bsqueda.
32

Las definiciones
de datos
ThmiROM qualifier pone los datos en la memoria del programa con 3 bytes por espacio de instrucciones. La
direccin utilizada para los datos de la ROM no es una direccin fsica, sino ms bien una verdadera direccin de
byte. El operador & se puede utilizar en las variables ROM sin embargo, la direccin no es lgica fsica.
Thsintaxis de correo es:
Identificacin del tipo const [cExpr] = {valor}

33

CCS C 10082015

Por ejemplo:
La colocacin de los datos en ROM
tabla const int [16] = {0,1,2} ... 15

La colocacin de una cadena en la ROM


const cadena tipo char [6] = { "hola"}

La creacin de punteros a las constantes


const char * cptr;
cptr = cadena;

The #org preprocesador se puede utilizar para colocar la constante de bloques de direcciones especificadas.
Por ejemplo:
The Identificacin constante ser a 1C00.
#ORG 0x1C00, 0x1C0F
Const char ID [10] = { "123456789"};

Nota: Un poco de cdigo extra preceder al 123456789.


Thfuncin de correo label_address Californian ser utilizado para obtener la direccin de la constante. La variable
constante se puede acceder en el cdigo. Esta es una gran manera de almacenar los datos constantes en grandes
programas. longitud variable cadenas constantes se pueden almacenar en la memoria de programa.
Un mtodo especial permite el uso de punteros a ROM. Este mtodo no contiene cdigo adicional en el inicio
de la estructura como lo hace constante.
Por ejemplo:
comandos rom char [] = { "poner | conseguir | estado | apagado"};

The compilador permite una caracterstica C no estndar para implementar una matriz constante de cadenas de
longitud variable.
Thsintaxis de correo es:
Identificacin del const char [n] [*] = { "cadena", "cadena" ...};

where n es opcional e id es el identificador de tabla.


Por ejemplo:
colores const char [] [*] = { "rojo", "verde", "azul"};

#Directiva ROM:
Otro mtodo es utilizar #rom para asignar datos a la memoria del programa.
Thsintaxis de correo es:
Direccin #rom = {datos, datos, ..., data}

Por ejemplo:
1,2,3,4 lugares de direcciones ROM a partir de 0x1000
#rom 0x1000 = {1, 2, 3, 4}

Lugares cadena terminada en nulo en la ROM


#rom 0x1000 = { "hola"}

Thimtodo s slo puede utilizarse para inicializar la memoria de programa.


Funciones integradas:
The compilador tambin proporciona funciones integradas para colocar los datos en la memoria del programa, que
son:

write_program_eeprom (direccin, datos);

- Escribe daejrcito de reserva tla memoria de programa o

write_program_memory (direccin, DataPtr, cuenta);

- Escribe count portes de datos de DataPtr a unddress yomemoria de programa n.


Por favor, consulte la ayuda de estas funciones para obtener ms detalles sobre su uso y las limitaciones en cuanto
a procesos de borrado. Estas funciones slo se pueden utilizar en los chips que permiten escrituras en la memoria
del programa. El compilador utiliza el borrado de la memoria flash y escribir rutinas para implementar la
funcionalidad.
Thdatos e colocados en la memoria de programa utilizando los mtodos mencionados anteriormente se pueden leer
desde el ancho de los siguientes funciones:

read_program_memory ((direccin, DataPtr, count)


- Lee num bytes de memoria de programa en la direccin a la RAM en DataPtr.
Tesfunciones de correo slo se pueden utilizar en los chips que permiten lee de la memoria de programa. El
34

Las definiciones
compilador utiliza las rutinas de lectura de memoria flash para implementar la funcionalidad.
de datos

35

CCS C 10082015

32

Las definiciones
de datos

Registros con nombre


The CCS C Compiler es compatible con la nueva sintaxis para la presentacin de una variable en la
ubicacin de un registro del procesador. Esta sintaxis se propone como una extensin C para su uso
incrustado. La misma funcionalidad se proporciona con la no-estndar #porte,#Word,#poco
unre#lOcate.
Thsintaxis de correo es:
regstrese _name tipo de identificacin;
O
Tipo de registro constante de la identificacin;
name es un nombre vlido SFR con un guin antes de ella.
Ejemplos:
regstrese _STATUS INT8 status_reg;
regstrese _T1IF INT8 timer_interrupt;
regstrese 0x04 Int16
file_select_register;

33

FUNCIN DEFINICIN
la definicin de funciones
Thformato de correo de una definicin de funcin es la siguiente:

[comolifier] carn de identidad

([Identificacin del tipo especificador] ) { [prop]}

OpVer cional bajo cero o ms separados por comas.


Consulte Tipos de datos

Zmiro o ms punto y coma


separa. Vanse las
declaraciones.

The pruebas de seleccin para una funcin son los siguientes:


VACO
Tipo-especificador
#separate
#inlinmi
#ent_ ..
when uno de los anteriores que se utilizan y la funcin tiene un prototipo (declaracin adelantada de la funcin
antes de que se define), debe incluir el calificador tanto en el prototipo y definicin de la funcin.
Una caracterstica (no estndar) se ha aadido al compilador para ayudar a conseguir alrededor de los problemas
creados por el hecho de que los punteros no pueden ser creados para cadenas constantes. Una funcin que tiene
un parmetro CHAR aceptar una cadena constante donde se llama. El compilador generar un bucle que va a
llamar a la funcin una vez para cada carcter de la cadena.
Ejemplo:
lcd_putc vaco (char c) {
...
}
lcd_putc ( "Hola all.");

SEE tambin:
OvFunciones erloaded
Parmetros de
referencia Parmetros
por defecto los
parmetros variables

OvFunciones erloaded
ovefunciones rloaded permitir que el usuario tenga mltiples funciones con el mismo nombre, pero deben aceptar
diferentes parmetros.
Aqu est un ejemplo de la sobrecarga de funciones: Dos funciones tienen el mismo nombre pero se diferencian en
los tipos de parmetros. El compilador determina qu tipo de datos se pasa como parmetro y llama a la funcin
apropiada.
Thila funcin s encuentra la raz cuadrada de un nmero entero variable de tiempo.
FindSquareRoot largo (long n) {

35

36

CCS C 10082015

Thila funcin s encuentra la raz cuadrada de una variable de tipo float.


flotar FindSquareRoot (float n) {
}

FindSquareRoot ahora se llama. Si la variable es de tipo long, se llamar el primer ejemplo FindSquareRoot (). Si la
variable es de tipo float, se llamar al segundo ejemplo FindSquareRoot ().
resultado = FindSquareRoot (variable);

Parmetros de referencia
The compilador tiene un soporte limitado para los parmetros de referencia. Esto aumenta la legibilidad del cdigo y
la eficiencia de algunos procedimientos en lnea. Los dos procedimientos siguientes son los mismos. El uno con
parmetros de referencia se llevar a cabo con mayor eficacia cuando est en lnea.
funct_a (int * x, int
* y) {
/*Tradicional*/
si (x *! = 5)
* * Y =
x + 3;
}
funct_a (& a, & b);

funct_b (int & x, int & y) {


/ * * Params Referencia /
si (x! = 5)
y = x + 3;
}
funct_b (a, b);

Los parmetros por defecto


Los parmetros por defecto permite una funcin de sus valores por defecto si no se pasa a ella cuando se le llama.
int mygetc (char * c, int n = 100) {
}

This espera funcin de n milisegundos para un personaje ms de RS232. Si se recibe un carcter, se guarda en
el puntero c y devuelve VERDADERO. Si hubo un tiempo de espera devuelve FALSO.
// Obtiene un char, espera 100 ms de
tiempo de espera para mygetc (etc.);
// Obtiene un char, espera 200ms para un
tiempo de espera (mygetc & c, 200);

Lista de argumentos
The compilador soporta un nmero variable de parmetros. Esto funciona igual que los requisitos de ANSI, excepto
que no se requiere al menos un parmetro fijo como lo hace la norma ANSI. La funcin se puede transmitir
cualquier nmero de variables y cualquier
37

la definicin de funciones

datipos de AT. Las funciones de acceso son va_start, va_arg, y va_end. Para ver el nmero de argumentos
pasados, la funcin nargs se puede utilizar.
/ *
stdarg.h mantiene el tipo de macros y va_list los datos necesarios para un nmero variable
de parmetros.
* /
# include <stdarg.h>

Una funcin con un nmero variable de parmetros requiere dos cosas. En primer lugar, se requiere de los puntos
suspensivos (...), que debe ser el ltimo parmetro de la funcin. Los puntos suspensivos representa la lista de
argumentos variable. En segundo lugar, se requiere una ms
Virginiariable antes de los puntos suspensivos (...). Por lo general, va a utilizar esta variable como un mtodo
para determinar la cantidad de variables que han sido empujados hacia los puntos suspensivos.
Aqu es una funcin que calcula y devuelve la suma de todas las variables:
int suma (int cuenta, ...)
{
// Un puntero a la lista de
argumentos va_list al;
int x, suma = 0;
// Iniciar la lista de argumentos
// Recuento es la primera variable antes de la elipsis
va_start (col, count);
while (count--) {
// Obtener un int de la
lista x = var_arg (col,
int);
suma + = x;
}
// Dejar de usar el
va_end lista (al);
volver (suma);
}

Algunos ejemplos del uso de esta nueva


funcin: x = Sum (5, 10, 20,
30, 40, 50); y = Sum (3, a,
b, c);

36

FUNCIONAL ENCIMAVER
I2C
I2C es un protocolo de comunicacin de dos hilos populares desarrollado por Phillips. I2C Muchos
microcontroladores PIC soporte de hardware-based. CCS ofrece soporte para el hardware basado en I2C
y un I2C maestro basado en software
dispositivo. (Para obtener ms informacin sobre el mdulo I2C basada en hardware, consulte la hoja de datos para
que el dispositivo de destino;
not apoyar todas las fotografas I2C .)
Funciones relevantes:
i2c_start ()
i2c_write (datos)

Emite una orden de arranque en el modo maestro I2C.


Enva un solo byte travs de la interfaz I2C.

i2c_read ()

Lee un byte travs de la interfaz I2C.

i2c_stop ()

Emite una orden de parada cuando est en el modo maestro I2C.

i2c_poll ()
intermedia.

Devuelve un VERDADERO si el hardware ha recibido un byte en la memoria

Preprocesador relevante:
#USO I2C

Configura el compilador para apoyar I2C a sus especificaciones.

Las interrupciones relevantes:


#INT_SSP

actividad I2C o SPI

#INT_BUSCOL

colisin de bus

#INT_I2C

I2C de interrupcin (Slo el 14000)

#INT_BUSCOL2

Colisin de bus (slo est soportado en algunas de PIC18)

#INT_SSP2

I2C o SPI actividad (slo est soportado en algunas de PIC18)

Relevante incluir archivos:


Ninguno, todas las
funciones incorporadas
getenv relevantes () Parmetros:
I2C_SLAVE

Devuelve un 1 si el dispositivo tiene I2C esclavo H / W

I2C_MASTER

Devuelve un 1 si el dispositivo tiene un I2C maestro H / W

Ejemplo de cdigo:
#definir Device_SDA PIN_C3

// Pin define

#definir Device_SLC PIN_C4


#utilizar I2C (maestro, SDA =
Device_SDA, scl = Device_SCL)

// Configurar dispositivo como Maestro

..
..
BYTE;
i2c_start ();
i2c_write (datos);

// Los datos a transmitir


// Emite un comando de inicio en el modo maestro I2C.
// Enva un solo byte travs de la interfaz I2C.
39

i2c_stop ();

40

// Emite una orden de parada cuando en el modo maestro I2C.

Descripcin de las
funciones

ANUNCIOdo
Tesopciones e permiten al usuario configurar y utilizar el convertidor de analgico a digital de mdulo. Slo
estn disponibles en los dispositivos con el hardware de ADC. Las opciones para las funciones y las
instrucciones varan dependiendo del chip y se enumeran en el archivo de cabecera dispositivo. En algunos
dispositivos existen dos mdulos independientes, ADC para estos chips se configura el segundo mdulo
utilizando las funciones de configuracin de ADC secundaria (Ex. Setup_ADC2).
Funciones relevantes:
SEtup_adc (modo)

Establece el modo A / D como fuera, el reloj del

ADC, etc. SEtup_adc_ports (valor)

Ajusta los pines ADC disponibles para

ser analgico o digital. SEt_adc_channel (canal)

Especifica el canal a ser de

uso para el a / d llamada.


read_adc (modo)
undc_done ()

Inicia la conversin y lee el valor. El modo tambin puede controlar la


funcionalidad.
Devuelve 1 si el mdulo ADC ha terminado su conversin.

Preprocesador relevante:
#DISPOSITIVO ADC = xx

Permite configurar el tamao de retorno read_adc. Por ejemplo,


usando un PIC con un 10 bit A / D se puede utilizar 8 o 10 para xx- 8
devolver el byte ms significativo,
10 volver la lectura A / D de 10 bits completo.

Las interrupciones relevantes:


INT_AD

Interrumpir incendios cuando una conversin A / D es completa

INT_ADOF

Interrumpir incendios cuando una conversin A / D se ha agotado

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
ANUNCIOC_CHANNELS

Nmero de canales A / D

ANUNCIOC_RESOLUTION

Nmero de bits devuelto por read_adc

Ejemplo de cdigo:
#DISPOSITIVO ADC = 10
...
valor de largo;
...
SEtup_adc (ADC_CLOCK_INTERNAL);
SEtup_adc_ports (ALL_ANALOG);
SEt_adc_channel (0);
delay_us (10);

// Permite que el mdulo A / D


// Y establece el reloj con el reloj interno ADC
// Establece que todos los pines ADC analgico
// La siguiente llamada read_adc leer el canal 0
// Se requiere un pequeo retraso despus de

establecer el canal
// Y antes lectura
VirginiaLue = read_adc ();

// Inicia la conversin y lee el resultado


// Y almacenarlo en
valor
41

CCS C 10082015
read_adc (ADC_START_ONLY);

// Slo se inicia la conversin

VirginiaLue = read_adc (ADC_READ_ONLY);


valor //. Asumiendo

42

// Lee el resultado de la ltima conversin y lo almacenan en el

Descripcin de las
funciones
el sombrero dispositivo un mdulo ADC de 10 bits, // valor oscilar entre 03FF. Si
#DISPOSITIVO ADC = 8 // haba sido utilizado en lugar del resultado rendir
0-FF. Si
#DISPOSITIVO // ADC = 16 haban sido utilizados en lugar del resultado
rendir 0 - // FFC0

AnaComparador log
Tesfunciones e Configure el mdulo comparador analgico. Slo est disponible en algunos dispositivos.
Funciones relevantes:
SEtup_comparator (modo)

Activa y configura el mdulo comparador analgico. Las opciones


varan en funcin del chip. Consulte el archivo de cabecera para
ms detalles.

Preprocesador
relevante: Ninguno
Las interrupciones relevantes:
INT_COMP

incendios de interrupcin en comparacin detectan. Algunos chips


tienen ms de un dispositivo de comparacin, y por lo tanto, ms
interrupciones.

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes ()
Parmetros:

COMP

Devuelve 1 si el dispositivo
tiene un comparador
Ejemplo de cdigo:
SEtup_comparator (A4_A5_NC_NC);
si (C1OUT)
output_low
(PIN_D0); ms
output_high (PIN_D1);

CaliforniaN autobs
Tesfunciones electrnicas permiten un fcil acceso a la red de rea de controlador (CAN) las funciones incluidas con
la interfaz CAN MCP2515 chip y el PIC18 MCU. Estas funciones slo funcionarn con la interfaz CAN MCP2515
unidades de chips y microcontroladores PIC que contienen ya sea una lata o un mdulo ECAN. Algunas funciones
slo estn disponibles para el mdulo ECAN y se especifican por el ECAN trabajo al final de la descripcin. Las
interrupciones son enumerados no est disponible para el chip de interfaz MCP2515.
Funciones relevantes:
Californian_init (void);

Inicializa el mdulo CAN y borra todos los filtros y mscaras de


modo thathat todos los mensajes pueden ser recibidos desde cualquier
43

CCS C 10082015

ID.
Californian_set_baud (void);

()

44

Inicializa la velocidad de transmisin de la to125kHz bus CAN, si


se utiliza un reloj de 20 MHz
y el valor predeterminado CAN-BRG define, se llama dentro de la can_init

Descripcin de las
funciones
funcin de lo que no hay necesidad de llamar.
Californian_set_mode
(Modo CAN_OP_MODE);

UNllows el modo del mdulo puede ser cambiado al modo de


configuracin, el modo de escucha, de bucle, modo desactivado, o
modo normal.

Californian_set_functional_m
ode
(Modo CAN_FUN_OP_MODE);

UNllowEs el modo de funcionamiento de los mdulos ECAN que se


cambie al modo de legado, el modo tradicional mejorada, o por
primera vez en el modo de primera causa (FIFO). ECAN

Californian_set_id (int * addr,


Identificacin del int32, ext INT1);

Poder segundoe utiliza para configurar el filtro y la mscara de ID con el


valor especificado por addr. Tambin se utiliza para fijar el ID del
mensaje que se enviar.

Californian_get_id (int * addr, ext INT1);

Devuelve el ID de un mensaje recibido.

Californian_putd
(Int32 identificacin, datos
int *, int len, int priority, ext
INT1, INT1 RTR);

Constructs un paquete puede utilizar los argumentos dados y lo coloca


en uno de los buffers de transmisin disponibles.

Californian_getd
(Int32 & id, los datos int *, int
& len, estructura y rx_stat
stat);

RetRieves un mensaje recibido de una de las memorias intermedias


de la CAN y almacena los datos relevantes en los parmetros de la
funcin que se hace referencia.

Californian_enable_rtr (PROG_BUFFER b);


Activa la funcin de respuesta automtica que enva
automticamente un paquete creado por el usuario cuando se recibe un
ID especificado. ECAN
Californian_disable_rtr (PROG_BUFFER b);
Californian_load_rtr
(B PROG_BUFFER, los datos int *, int
len);

Desactiva la funcin de respuesta automtica. ECAN

CreunTES y carga los paquetes que se transmiten automticamente


cuando se recibe el ID de activacin. ECAN

Californian_enable_filter (tiempo de filtro);


ECAN. ECAN

Permite uno de los filtros adicionales incluidos en el mdulo

Californian_disable_filter (tiempo de filtro);


mdulo ECAN. ECAN

Desactiva uno de los filtros adicionales incluidos en el

Californian_associate_filter_to_buff
er
(Buffer, filtro de
CAN_FILTER_ASSOCIATION
CAN_FILTER_ASSOCIATION_BUFF
ERS);

TSEd asociar un filtro a un tampn especfico. Esto permite slo de


tampones especficos para ser filtrados y est disponible en el
mdulo de ECAN. ECAN

Californian_associate_filter_to_ma
sk
(CAN_MASK_FILTER_ASSOCIATE
mscara,
filtro CAN_FILTER_ASSOCIATION);

TSEd para asociar una mscara a un bfer especfico. Esto permite


que slo tampn especfico de haber aplicado esta mscara. Esta
funcin est disponible en el mdulo ECAN. ECAN

Californian_fifo_getd (int32 & id,


los datos int *, int & len,

estructura y rx_stat stat);


45

CCS C 10082015

RetRieves el siguiente tampn en el


bfer FIFO. Slo est disponible en

el ECON
Module mientras se opera en el modo de fifo. ECAN

Preprocesador relevante:
Ninguna
Las interrupciones relevantes:
#int_canirx
CAN.

46

This interrupcin se dispara cuando un paquete no vlido se recibe en la

Descripcin de las
funciones
#int_canwake
en el

This interrupcin se dispara cuando el PIC es despertado por la actividad


POD
ER.

#int_canerr

This de interrupcin se dispara cuando hay un error en el mdulo de CAN.

#int_cantx0
tampn 0 ha completado.

This de interrupcin se dispara cuando la transmisin de la memoria

#int_cantx1
completado.

This interrupcin se activa cuando la transmisin del buffer 1 ha

#int_cantx2
intermedia 2 se ha completado.

This de interrupcin se dispara cuando la transmisin de la memoria

#int_canrx0

This de interrupcin se dispara cuando se recibe un mensaje en tampn 0.

#int_canrx1

This de interrupcin se dispara cuando se recibe un mensaje en tampn 1.

Incluir archivos relevantes:


Californian-mcp2510.c

Los controladores para los chips de interfaz MCP2510 y MCP2515

Californian-18xxx8.c

Los controladores para el construido en el mdulo CAN

Californian-18F4580.c

Los controladores para el mdulo de acumulacin en ECAN

getenv relevantes () Parmetros:


ninguna
Ejemplo de cdigo:
Californian_init ();
Californian_putd (0x300, datos, 8,3,
TRUE, FALS E);

// Inicializa el bus CAN


// lugars un mensaje en el bus CAN con
// ID = 0x300 y ocho bytes de datos apuntado por
// "datos", el verdadero crea un ID extendida, la
// Crea FALSO

Californian_getd (ID, datos, len, stat);

// Recupera un mensaje del bus CAN almacenar el


// ID en la variable de identificacin, los datos en la matriz a la que apunta
// "Datos", el nmero de bytes de datos en len, y las estadsticas
// Acerca de los datos en la estructura stat.

CCP
Tesopciones e permite configurar y utilizar el mdulo CCP. Puede haber mltiples mdulos CCP para un dispositivo.
Estas funciones slo estn disponibles en los dispositivos de hardware con CCP. Operan en 3 modos: captura,
comparar y PWM. La fuente de captura / comparacin modo puede ser Timer1 o Temporizador 3 y en PWM puede
ser Timer2 o timer4. Las opciones disponibles son diferentes para diferentes dispositivos y se enumeran en el
archivo de cabecera dispositivo. En el modo de captura el valor del temporizador se copia en el registro CCP_X
cuando se produce el evento pin de entrada. En el modo de comparacin se disparar una accin cuando los
valores de temporizador y CCP_x son iguales y en el modo PWM que va a generar una onda cuadrada.
Funciones relevantes:
SEtup_ccp1 (modo)

Establece el modo para capturar, comparar o PWM. para la captura

SEt_pwm1_duty (valor)

Thel valor de e se escribe en el PWM1 para establecer el deber.

Preprocesador relevante:
Ninguna
47

CCS C 10082015

Las interrupciones relevantes:

48

Descripcin de las
funciones
INT_CCP1

incendios de interrupcin cuando la captura o comparar el CCP1

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
CCP1

Devuelve 1 si el dispositivo tiene CCP1

Ejemplo de cdigo:
#int_ccp1
ISR void
()
{
aumentando = CCP_1;
pulso fue por poco caer = CCP_2;

// CCP_1 es el tiempo del


// CCP_2 es el

tiempo del pulso fue baja pulse_width = cada - levantarse;


//ancho de pulso
}
..
SEtup_ccp1 (CCP_CAPTURE_RE);

// Configurar CCP1 para capturar aumento

SEtup_ccp2 (CCP_CAPTURE_FE);

// Configurar CCP2 para capturar cada

SEtup_timer_1 (T1_INTERNAL);

// Iniciar temporizador 1

Algunos chips tambin tienen fusibles que permite multiplexar el CCP / PWM en diferentes pines. A fin de
comprobar los fusibles para ver qu pin est configurado por defecto. Tambin fusibles para activar /
desactivar salidas PWM.

cdigo de perfil
Profile un programa mientras se est ejecutando. A diferencia de depuracin en circuito, esta
herramienta toma la informacin, mientras que el programa se est ejecutando y proporciona
estadsticas, el registro y seguimiento de la ejecucin es. Esto se logra mediante el uso de un
mtodo de comunicacin simple entre el procesador y el ICD con efectos secundarios
mnimos para el tiempo y la ejecucin del programa. Otro beneficio de perfil cdigo frente a la
depuracin en-circuito es que un programa escrito con la ayuda perfil habilitado funcionar
correctamente, incluso si no hay ICD conectado.
Con el fin de utilizar el Cdigo de perfiles, varias funciones y estados pre-procesador necesitan ser incluidos en
el proyecto que se est compilado y perfilado. Hacer esto se suma el apoyo en tiempo de ejecucin perfil
cdigo apropiado en el microcontrolador.

See el archivo de ayuda en la herramienta de cdigo


de perfil para ms ejemplos de ayuda y de uso.
Funciones relevantes:
profileout ()

Enviar un mensaje o variable especificado por el usuario que se


mostrar o registrada por la herramienta perfil cdigo.

Relevante Pre-Procesador:
49

CCS C 10082015
#utilizar el perfil ()
el microcontrolador.

50

Global la configuracin del perfil de cdigo de tiempo de ejecucin en

Descripcin de las
funciones
#perfil
Las interrupciones relevantes:

Dinmicamente activar / desactivar elementos especficos del perfilador.


The perfilador puede ser configurado para usar el
temporizador interno de un microcontrolador para medir el tiempo ms
precisa de los eventos ms el reloj de la PC. Este temporizador se
configura mediante el comando #profile pre-procesador.

Incluir archivos relevantes:

Ninguno - todas las funciones estn integradas en el compilador.

getenv relevante ():


Ejemplo de cdigo:

Ninguna
#include <18F4520.h>
#nose retardo (cristal = 10 MHz, 40 MHz del reloj =)
#pERFIL funciones,
parmetros void main (void)
{
ent ADC; setup_adc
(ADC_CLOCK_INTERNAL);
set_adc_channel (0);
para(;
;)
{
anuncioc =
read_adc ();
profileout (ADC);
Delay_ms (250);
}
}

configuracin de la memoria
On todo PIC18 familia de chips, la memoria de configuracin puede leerse y escribirse. Esta funcionalidad no est
disponible en la familia PIC16 de dispositivos ..
Funciones relevantes:
write_configuration_memory
(ramaddress, recuento)

WRItes cuentan bytes, sin borrado necesario

o
write_configuration_memory
(Offset, ramaddress, count)

WRItes cuentan bytes, necesitaba partir de la direccin desplazamiento de


bytes sin borrado

read_configuration_memory
(Ramaddress, recuento)

Leer count bytes de memoria de configuracin

Preprocesador relevante:
Ninguna
Relevante incluir archivos:
Ninguno, todas las
51

CCS C 10082015

funciones incorporadas

52

Descripcin de las
funciones
getenv relevantes () parmetros:
Ninguna
Ejemplo de
cdigo: Para los
datos Int16
PIC18F452 =
0xc32;

// Escribe 2 bytes de la memoria de configuracin

...
write_configuration_memory
(datos,
2);

DAdo
Tesopciones e permiten al usuario configurar y utilizar el mdulo de digital a analgico convertidor. Slo estn
disponibles en los dispositivos con el hardware DAC. Las opciones para las funciones y las instrucciones varan
dependiendo del chip y se enumeran en el archivo de cabecera dispositivo.
Funciones relevantes:
SEtup_dac (divisor)
dac_write (valor)

Permite configurar el CAD, por ejemplo, tensiones de referencia


WRITES el valor de 8 bits para el mdulo DAC
Se instala el d / a modo de ejemplo, Derecha permitir, divisor de reloj
WRITES el valor de 16 bits en el canal especificado

Preprocesador
relevante:

#Usar retraso (reloj = 20M, Aux: Cristal = 6M, reloj = 3M)

Las interrupciones relevantes:


Incluir archivos relevantes:
getenv relevantes () parmetros:
ejemplo de cdigo

Ninguna
Ninguno, todas las funciones incorporadas
Ninguna
ent8 i = 0 setup_dac
(DAC_VSS_VDD); while
(true) {
yot
t;
dac_writo (i);
}

53

CCS C 10082015

datos en la EEPROM
The la memoria EEPROM de datos puede leerse y escribirse en algunos chips. Estas opciones permite al usuario
leer y escribir en la memoria EEPROM de datos. Estas funciones slo estn disponibles en los chips flash.
Funciones relevantes:
(8 bits o 16 bits dependiendo
del dispositivo)
read_eeprom (direccin)

Lee la posicin de memoria EEPROM de datos

write_eeprom (direccin, valor)

Borra y escribe el valor de los datos EEPROM direccin de ubicacin.


Lee N bytes de datos en la EEPROM comenzando en la direccin de
ubicacin de memoria. El tamao mximo de retorno es Int64.
Lee de la EEPROM de partida para llenar la variable en la direccin
Lee N bytes, comenzando en la direccin, al puntero
WRITES valor a la direccin
EEPROM
WRITES N bytes para abordar desde un puntero

Preprocesador relevante:
#direccin de ROM = {lista}
Tambin se puede utilizar para poner los datos de la memoria
EEPROM de datos en el archivo hexadecimal.
write_eeprom = noint

Permite a las interrupciones que se produzcan mientras que las


operaciones del write_eeprom (sondeo) es el bit de efectuado para
comprobar si ha completado las operaciones de escritura. Se puede
utilizar siempre y cuando no hay operaciones de EEPROM se realizan
durante un ISR.

Las interrupciones relevantes:


INT_EEPROM

Interrumpir se activa cuando se ha completado EEPROM

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
DATA_EEPROM

Tamao de la memoria EEPROM de datos.

Ejemplo de
cdigo: Para
18F452
#rom 0xf00000 =
{1,2,3,4,5}

write_eeprom (0x0,0x12);
VirginiaLue = read_eeprom (0x0);
#ROM 0x007FFC00 = {1,2,3,4,5}

// Inserta estos datos en el archivo hexadecimal. La direccin de datos en la


EEPROM
// Difiere segn los distintos familia de chips. Por favor refirase a la
// Caractersticas de programacin para encontrar el valor correcto para el
dispositivo
// Escribe 0x12 a la ubicacin de los datos EEPROM 0
// Lee devuelve datos de ubicacin EEPROM 0x0 0x12
// inserta estos datos en el archivo hex
// La direccin de la EEPROM de datos difiere entre los PIC
// Por favor, consulte el editor de dispositivos para los

54

Descripcin de las
funciones
valores especficos del dispositivo. write_eeprom (0x10, 0x1337);
ubicacin EEPROM de datos 10. VirginiaLue = read_eeprom (0x0);

// Escribe 0x1337 a la
// Lee ubicacin

datos en la EEPROM 10 vuelve 0x1337.

55

CCS C 10082015

Modulador de Datos de Seal


The Los datos de la seal del modulador (DSM) permite al usuario mezclar un flujo de datos digital (la "seal de
modulador") con una seal portadora para producir una salida modulada. seales tanto el transportista y el
modulador se suministran al mdulo de DSM, ya sea internamente desde la salida de un perifrico, o
externamente a travs de un pin de entrada. La seal de salida modulada se genera mediante la realizacin de
una operacin lgica AND de las seales tanto el transportista como moduladores y entonces se proporciona al
pasador MDOUT. Usando este mtodo, el DSM puede generar los siguientes tipos de esquemas de clave de
modulacin:

Desplazamiento de frecuencia (FSK)


Desplazamiento de fase (PSK)
En-Off Keying (OOK)

Funciones relevantes:

(8 bits o 16 bits dependiendo del dispositivo)

SEtup_dsm (modo, la fuente, portador)


Configura el mdulo de DSM y selecciona las seales de seal
de origen y de soporte.
SEtup_dsm (TRUE)

Permite que el mdulo de DSM.

SEtup_dsm (FALSO)

Desactiva el mdulo de DSM.

Preprocesador relevante:

Ninguna

Las interrupciones relevantes:

Incluir archivos relevantes:

getenv relevantes () parmetros:

Ninguna

Ninguno, todas las funciones incorporadas

Ninguna

Ejemplo de cdigo:
SEtup_dsm (DSM_ENABLED |
DSM_OUTPUT_ENABLED,
OC1 de DSM_SOURCE_UART1,

// Habilita el mdulo de DSM con la salida activada y selecciona UART1


// Como la seal fuente y VSS como la seal de alta portador y
// Salida PWM como la seal portadora baja.

DSM_CARRIER_HIGH_VSS |
DSM_CARRIER_LOW_OC1);

si (entrada (PIN_B0))
SEtup_dsm
(FALSO);
misetup_dsm lse
(TRUE);

56

diSablmdulo de e DSM
Habilitar el mdulo de DSM

Descripcin de las
funciones

Memoria externa
Algunos dispositivos PIC18 tienen la funcionalidad de memoria externa en la memoria externa se puede asignar a
los dispositivos de memoria externos como (Flash, EPROM o RAM). Estas funciones slo estn disponibles en
dispositivos compatibles con bus de memoria externa.

GRAMOeneral Propsito de E / S
Tesopciones e permiten al usuario configurar y utilizar los pines de E / S en el dispositivo. Estas funciones
afectarn a los pasadores que se enumeran en el archivo de cabecera dispositivo.
Funciones relevantes:
output_high (pin)

Establece el pin dado al estado alto.

output_low (pin)

Establece el pin dado al estado fundamental.

output_float (pin)

Establece el pin especificado para el modo de entrada. Esto permitir que el


perno para flotar alta para representar una alta en un tipo de colector abierto
de conexin.

output_x (valor)

UNEDtputs un byte toda al puerto.

output_bit (pin, valor)


de entrada (pin)

UNEDtputs el valor especificado (0,1) al pin de E / S especificado.


Thfuncin de correo devuelve el estado de la clavija indicada.

input_state (pin)

Thifuncin s lee el nivel de un perno sin cambiar la direccin del pasador


como entrada () hace.

SEt_tris_x (valor)

Establece el valor de la E / S de la direccin del puerto de registro. Un '1'


es una entrada y '0' es para la salida.

input_change_x ()

This funcin lee los niveles de los pines en el puerto, y los compara con la
ltima vez que fueron ledos para ver si hubo un cambio, si haba 1, 0 si no lo
haba.

Preprocesador relevante:
#USO STANDARD_IO (puerto)

This compilador utilizar esta directiva sea por defecto y lo har


automticamente inserta cdigo para el registro de direccin cada vez que
se utiliza una funcin de E / S como output_high () o la entrada ().

#USO FAST_IO (Puerto)This directiva configurar el puerto de I / O para utilizar el mtodo rpido de la realizacin
de I / O. El usuario ser responsable de establecer el registro de direccin de
puerto utilizando la funcin set_tris_x ().
#NOSE FIXED_IO
(port_outputs =; en,
pin?)

This directiva asignada pasadores particulares a utilizar una entrada o salida, y


el compilador realizar esta configuracin cada vez que se utiliza este pin.

Las interrupciones
relevantes: pertinente
incluir archivos:
Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
PIN: pb

Devuelve un 1 si el bit b en el puerto p es en esta parte

Ejemplo de cdigo:
#nose fast_io (b)
...
INT8 Tris_value = 0x0F;
INT1 Pin_value;

57

CCS C 10082015

...
set_tris_b (Tris_value);

//Conjuntos B0: B3 y B4 como entrada: B7 como salida

output_high (PIN_B7);

// Set el B7 pasador a Mayor

Si (entrada (PIN_B0)) {

// Read el valor de B0 pasador, ajustado a la baja B7 si

B0 pasador es alto
output_high (PIN_B7);}

Pantalla interna
Algunas familias de microcontroladores PIC pueden conducir un LCD segmento de vidrio directamente, sin la
necesidad de un controlador de LCD. Por ejemplo, la serie PIC16C92X, PIC16F91X, y PIC16F193X de los chips
tienen un mdulo de controlador LCD interna.
Funciones relevantes:
SEtup_lcd
(Modo, preescala,
[segmentos])

Configura el mdulo del controlador LCD para utilizar el modo especificado,


pre-escalador del temporizador, y segmentos. Para obtener ms informacin
sobre los modos y valores vlidos, consulte la setup_lcd () en el manual y el
archivo de cabecera .h * para el microcontrolador PIC que se utiliza.

lcd_symbol
(Smbolo, segment_b7
... segment_b0)

The smbolo especificado se coloca en los segmentos deseados, donde


segment_b7 a segment_b0 representan pasadores SEGXX en el
microcontrolador PIC. Por ejemplo, si el bit 0 del smbolo se establece,
entonces segment_b0 est establecido, y si segment_b0 es 15, entonces
SEG15 se establecera.

lcd_load (PTR, offset, longitud)

WRITES longitud portes de datos de puntero directly a la memoria


segmento LCD, a partir de compensar.

lcd_contrast (contraste)

El paso de un valor de 0-7 va a cambiar el contraste de los segmentos de la


pantalla, siendo 0 el mnimo, 7 siendo el mximo.

Preprocesador
relevante: Ninguno
Las interrupciones relevantes:
#int_lcd
Los archivos relevantes inlcude:

LMarco de CD es completa, todos los pxeles que aparecen


Ninguno, todas las funciones integrado en el compilador.

getenv relevantes () Parmetros:


LCD
interna.

Devuelve VERDADERO si el dispositivo tiene un mdulo de controlador LCD

Ejemplo de programa:
// Cmo se establece cada segmento de la pantalla LCD (encendido o apagado) para los dgitos 0 a 9 ASCII.
porte CONST DIGIT_MAP [10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xE6};
// Definir la informacin del segmento para el primer dgito de la pantalla LCD
#definir DIGIT1 COM1 + 20, + 18 COM1, COM2 + 18, + 20 COM3, COM2 + 28, + 28 COM1, COM2 + 20, + 18
COM3
58

Descripcin de las
funciones

// Muestra los dgitos 0 a 9 en el primer dgito de la pantalla LCD.

59

CCS C 10082015

for (i = 0; i <= 9; i ++) {


lcd_symbol (DIGIT_MAP [i], DIGIT1);
Delay_ms (1000);
}

El oscilador interno
Hombrechips de Y tienen oscilador interno. Hay diferentes maneras de configurar el oscilador interno. Algunos chips
tienen una constante fbrica de 4 Mhz calibrar el oscilador interno. El valor se almacena en algn lugar (sobre todo
la ms alta de memoria de programa) y el compilador lo mueve al registro OSCCAL en el arranque. Los
programadores de guardar y restaurar este valor, pero si esto se pierde necesitan ser programados antes de que el
oscilador est funcionando correctamente. Algunos chips tienen oscilador interno calibrado de fbrica que ofrece el
software rango de frecuencia seleccionable (de 31Kz a 8 MHz) y tienen un valor por defecto y se puede cambiar a
un valor superior / inferior en el software. Tambin son sintonizable software. Algunos chips tambin proporcionan la
opcin de PLL para el oscilador interno.
Funciones relevantes:
SEtup_oscillator
(modo, finetune)
Preprocesador

Establece el valor del oscilador interno y tambin se sintoniza. Las


opciones varan dependiendo del chip y se enumeran en los archivos de
cabecera dispositivo.

relevante: Ninguno
Las interrupciones relevantes:
INT_OSC_FAIL o INT_OSCF

Interrumpir incendios cuando el oscilador sistema falla y el procesador


cambia al oscilador interno.

Relevante incluir archivos:


Ninguno, todas las
funciones incorporadas
getenv relevantes () parmetros:
Ninguna
Ejemplo de
cdigo: Para
PIC18F8722
SEtup_oscillator (OSC_32MHZ);

// Establece el oscilador interno de 32 MHz (PLL activado)

Si la opcin de oscilador fusible interno se especifican en las #fuses y un reloj vlida se especifica en
el retraso #use (reloj = xxx) Directiva del compilador configura automticamente el oscilador. Las
declaraciones de retardo #use deben utilizarse para indicar al compilador acerca de la velocidad del
oscilador.

interrupciones
The siguientes funciones permiten para el control del subsistema de interrupcin del microcontrolador. Con estas
funciones, las interrupciones pueden ser habilitadas, los discapacitados y borran. Con las directivas de
preprocesador, una funcin predeterminada puede ser llamado por cualquier interrupcin que no tiene un ISR
asociada, y una funcin global puede reemplazar el compilador genera
endespachador terrumpir.
60

Descripcin de las
funciones

Funciones relevantes:
disable_interrupts ()

Desactiva la interrupcin especificada.

61

CCS C 10082015

minable_interrupts ()

Activa la interrupcin especificada.

ext_int_edge ()

Habilita el borde en el que la interrupcin de borde debe desencadenar. Esto


puede ser o bien flanco ascendente o descendente.

dolear_interrupt ()

This funcin borrar la bandera de interrupcin especificada. Esto se puede


utilizar si se utiliza un isr global, o para evitar una interrupcin de ser
atendida.

interrupt_active ()

This funcin comprueba el indicador de interrupcin de interrupcin


especificada y devuelve verdadero si se fija la bandera.

INTERRUPT_ENABLED ()

This funcin comprueba el indicador de habilitar interrupcin del


interrupcin especificada y devuelve TRUE si se establece.

Preprocesador relevante:
#HIGH_INTS device =
alta prioridad.
#INT_XXX rpida

This directiva le dice al compilador para generar cdigo para interrupciones de


This directiva le dice al compilador que la interrupcin especificada debe ser
tratada como una alta prioridad de interrupcin.

Las interrupciones relevantes:


#int_default

This directiva especifica que la siguiente funcin se debe llamar si se dispara


una interrupcin, pero ninguna rutina se asocia con la interrupcin.

#int_global

This directiva especifica que la siguiente funcin se debe llamar cada vez que
se dispara una alarma. Esta funcin reemplazar el compilador genera
despachador de interrupcin.

#int_xxx

This directiva especifica que la siguiente funcin se debe llamar cada vez
que se ha disparado la alarma xxx. Si se utiliza el compilador genera
despachador de interrupcin, el compilador se encargar de la limpieza de
los bits de la bandera de interrupcin.

Incluir archivos relevantes:


ninguna, todas las funciones incorporadas.
getenv relevantes () Parmetros:
ninguna

Ejemplo de cdigo:
#int_timer0
vtimer0interrupt OID ()

// #int_timer Asocia la siguiente funcin con el


// Rutina de servicio de interrupcin que debe

ser llamado minable_interrupts (Timer0);


interrumpen disable_interrtups (Timer0);
dolear_interrupt (TIMER0);
Timer0

62

// Permite a los Timer0


// Desactiva el Timer0 interrumpen

// Borra el indicador de interrupcin del

Descripcin de las
funciones

Deteccin de bajo voltaje


Tesfunciones e configuran el alta / baja tensin mdulo de detectar. Las funciones disponibles en las fichas que
tienen la baja tensin detectar el hardware.
Funciones relevantes:
SEtup_low_volt_detect (modo)

Establece los niveles de activacin de tensin y tambin el modo (por debajo


o por encima en el caso de la alta / baja tensin mdulo de detectar). Las
opciones varan dependiendo del chip y se enumeran en los archivos de
cabecera dispositivo.

Preprocesador relevante:
Ninguna
Las interrupciones relevantes:
INT_LOWVOLT

incendios de interrupcin en baja tensin detectan

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
Ninguna
Ejemplo de cdigo:
Para PIC18F8722
setup_low_volt_detect
(LVD_36 |
LVD_TRIGGER_ABOV
MI);

// Establece el nivel de disparo como 3,6 voltios y


// Direccin de activacin como anteriormente. la interrupcin
// Si est habilitado se dispara cuando la tensin es
// Encima de 3,6 voltios.

PMP / EPMP
The Puerto Paralelo Maestro (PMP) / Puerto paralelo mejorado Maestro (EPMP) es un / 16 bits de 8 bits en
paralelo mdulo E / S diseado especficamente para comunicarse con una amplia variedad de dispositivos
paralelos. Las principales caractersticas del mdulo de PMP son:
8 o 16 lneas de datos
Hasta 16 o 32 lneas de direccin programables
Hasta 2 lneas de seleccin de chip
Opcin programable Strobe
Direccin incremento automtico / Auto-decremento
Programable direccin / datos Multiplexacin
La polaridad programable de seales de control
Legado esclavo paralelo (PSP) Apoyo
Soporte esclavo de puerto paralelo mejorado
Espere programable Unidos
Funciones
relevantes:

Thiconfigurar el mdulo s PMP / EPMP de varios modos y especifica qu


lneas de direccin que deben utilizarse.
63

CCS C 10082015

SEtup_psp
(Opciones, address_mask)

Thiconfigurar el mdulo s PSP para varios modos y especifica qu lneas de


direccin que deben utilizarse.

SEtup_pmp_csx (opciones,
[compensados
])

Configura la X Seleccionar Configuracin de la viruta, de modo y registros de


direccin de base

SEtup_psp_es (opciones)
Modo

Permite configurar la Seleccin de configuracin de X Chip y registros de


WRITA El byte de datos a la siguiente ubicacin buffer.
This se escribe un byte de datos a la siguiente ubicacin del tope o se escribe
un byte en la ubicacin de almacenamiento intermedio especificado.
Lee un byte de datos.
psp_read() Va a leer un byte de datos a partir de la siguiente puesto de
almacn intermedio y psp_read (
aadirO prima) leer la direccin de ubicacin tampn.
Configura el registro de direcciones del mdulo PMP con la direccin
de destino durante el funcionamiento en modo maestro.
This devolver el estado del bit de underflow bfer de
salida. Esto devolver el estado de los buffers de entrada.

psp_input_full ()

This devolver el estado de los buffers de entrada.


This devolver el estado de las memorias

intermedias de salida. psp_output_full ()

This devolver el

estado de las memorias intermedias de salida. Preprocesador relevante:


Ninguna
Las interrupciones relevantes:
#INT_PMP

Interrumpir en leer o escribir estroboscpica

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
Ninguna
Ejemplo de cdigo:
SEtup_pmp (PAR_ENABLE |

Establece el modo principal con lneas de direccin PMA0: PMA7

PAR_MASTER_MODE_1 |
PAR_STOP_IN_IDLE, 0x00FF);
Si (pmp_output_full ())
{
pmp_write (next_byte);
}

PWM potencia
TesE Opciones permite al usuario configurar la modulacin de ancho de pulso (PWM) pasadores. Slo estn
disponibles en los dispositivos equipados con PWM. Las opciones para estas funciones varan dependiendo del
chip y se enumeran en el archivo de cabecera dispositivo.
64

Descripcin de las
funciones

Funciones relevantes:
SEtup_power_pwm (config)
SEtup_power_pwm_pins
(modu le x)

Permite configurar el reloj PWM, perodo, tiempo muerto, etc.


Conorteaveriguar las estacas del PWM para estar en
, O desactiva el modo de cortesa.

SEt_power_pwmx_duty (deber)

Almacena el valor del ciclo de trabajo en el registro PDCXL / h. Este


valor del ciclo de trabajo es el tiempo durante el cual el PWM est en
estado activo.

SEt_power_pwm_override
(PWM
, Anulacin, valor)

Thifuncin s determina si los OVDCONS o los registros de PDC


determinar la salida PWM.

Preprocesador
relevante: Ninguno
Las interrupciones relevantes:
#INT_PWMTB

PWM de base de tiempo de interrupcin (Slo disponible en PIC18XX31)

getenv relevantes ()
Parmetros: Ninguno
Ejemplo de cdigo:
....
Duty_Cycle tiempo, periodo;
...
// Configura pines PWM para estar en ON, OFF o en modo de cortesa.
setup_power_pwm_pins (PWM_COMPLEMENTARY, PWM_OFF, PWM_OFF,
PWM_OFF);
// Establece el reloj PWM, y postscale perodo. Aqu se utiliza para establecer el perodo
// Frecuencia PWM como sigue:
// Frecuencia = Fosc / (4 * (periodo + 1) * postscale)
SEtup_power_pwm (PWM_CLOCK_DIV_4 | PWM_FREE_RUN, 1,0, perodo, 0,1,0);
SEt_power_pwm0_duty (ycle
duty_c));

// Establece el ciclo de trabajo del PWM en 0,1


// Modo complementario

programa Eeprom
Thmemoria flash programa de correo puede leerse y escribirse en algunos chips y es legible en algunos. Estas
opciones permite al usuario leer y escribir en la memoria de programa flash. Estas funciones slo estn
disponibles en los chips flash.
Funciones relevantes:
65

CCS C 10082015

read_program_eeprom (Addres
la

66

Lee la ubicacin de la memoria de programa (16 bits o 32 bits, dependiendo de

Descripcin de las
funciones
s)dispositivo).
write_program_eeprom
(Addres s, valor)

WRIvalor de TES para programar la memoria direccin

mirase_program_eeprom (ss
addre)

de ubicacin. Borra bytes FLASH_ERASE_SIZE en la

write_program_memory
(addre ss, DataPtr, count)

memoria del programa.


WRItes cuentan bytes en la memoria de programa para tratar DataPtr.
Cuando la direccin es un mutiple de FLASH_ERASE_SIZE tambin se
lleva a cabo un proceso de borrado.

read_program_memory (s
Addres, DataPtr, count)

Reund bytes de recuento de la memoria del programa en direccin a DataPtr.

Preprocesador relevante:
#direccin de ROM = {lista}
el archivo hexadecimal.
#DISPOSITIVO
(WRITE_EEPROM = AS YNC)

Se puede utilizar para poner los datos de la memoria de programa en

Poder segundoE utilizada con #DEVICE para evitar que la funcin de


escritura de colgar. Cuando esto se utiliza asegurarse de que la EEPROM
no est escrito, tanto dentro como fuera de la ISR.

Las interrupciones relevantes:


INT_EEPROM

Interrumpir incendios cuando EEPROM es completa.

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
GETENV relevante (parmetros)
PROGRAM_MEMORY

Tamao de memoria de programa

READ_PROGRAM

Devuelve 1 si la memoria del programa

se puede leer FLASH_WRITE_SIZE

Ms pequeo nmero de

bytes escritos en Flash


FLASH_ERASE_SIZE

Ms pequeo nmero de bytes borrado flash

Ejemplo de cdigo:
Para 18F452 donde el tamao de escritura es de 8 bytes y borrar el tamao es de 64 bytes
#rom 0xa00 = {1,2,3,4,5}
mirase_program_eeprom
(0x100
0);
write_program_eeprom
(0x1000
, 0x1234);

// Inserta estos datos en el archivo hexadecimal.


(0x1000
, El valor, 8);
mirase_program_eeprom (0x100
0);
write_program_memory (0x101
0, Datos, 8);

VirginiaLue =
read_program_eeprom (
0x1000);
write_program_memory (0x100
0, Datos, 8);
read_program_memory
67

CCS C 10082015

//miRass 64 bytes strting en


0x1000
// Escribe 0x1234 0x1000 a
// Lee 0x1000 0x1234
rendimientos
// Borra 64 bytes a partir de las
0x1000 0x1000 como es mltiplo
// De 64 y escribe 8 bytes de
datos a 0x1000
// Lee a 8 bytes de valor 0x1000
// Borra 64 bytes a partir de las
0x1000
// Escribe 8 bytes de datos para
0x1000

68

Descripcin de las
funciones
read_program_memory
(0x100
0, El valor, 8);

//lee a 8 bytes de valor 0x1000

Para los chips donde getenv ( "FLASH_ERASE_SIZE")> getenv ( "FLASH_WRITE_SIZE")


WRITE_PROGRAM_EEPRO
M-

WRITES
2
bytes,
no
ERASE_PROGRAM_EEPROM)

se

eliminan

(uso

WRITE_PROGRAM_MEMOR
YERASE_PROGRAM_EEPRO
M-

WRITES cualquier nmero de bytes, se borrar un bloque cada vez que la


primera (ms baja) de bytes en un bloque se escribe. Si la primera direccin
no es el comienzo de un bloque que el bloque no se borra.
Will borrar un bloque. No se utilizan los bits de direccin
ms bajos.

Para los chips donde getenv ( "FLASH_ERASE_SIZE") = getenv (


"FLASH_WRITE_SIZE") WRITE_PROGRAM_EEPROM -

WRItes 2 bytes, no se

necesita de borrado.
WRITE_PROGRAM_MEMORY
-

WRITES cualquier nmero de bytes, bytes de fuera de la gama del bloque de


escritura no se cambian. No se necesita ningn borrado.

ERASE_PROGRAM_EEPROM -

No disponible.

PSP
Tesopciones e permiten configurar y utilizar el Puerto Paralelo Esclavo sobre los dispositivos compatibles.
Funciones relevantes:
SEtup_psp (modo)
psp_output_full ()

Activa / desactiva el puerto de PSP en el chip


Devuelve 1 si la memoria intermedia de salida est llena (la espera de

ser ledo por el bus externo) psp_input_full ()

Devuelve 1 si el bfer de entrada est llena

(a la espera de leer la CPU) psp_overflow ()

Devuelve 1 si se ha producido una escritura

antes de leer el byte escrito anteriormente


Preprocesador relevante:
Ninguna
Las interrupciones relevantes:
INT_PSP

Interrumpir incendios cuando los datos de PSP est en

Relevante incluir archivos:


Ninguno, todas las
funciones incorporadas
getenv relevantes () parmetros:
PSP

Devuelve 1 si el dispositivo tiene PSP

Ejemplo de cdigo:
while (psp_output_full ());

// Espera hasta que el bfer de

salida se borra psp_data = comando;


while (input_buffer_full ()!);

// Escribe al puerto

// Espera hasta buffer de entrada

se borra
69

CCS C 10082015

si (psp_overflow ())
mirror = true

// Si hay un desbordamiento
establece el indicador de error

milse
datos = psp_data;

70

// Si no hay desbordamiento entonces leer el puerto

Descripcin de las
funciones

QEI
The Interfaz Codificador de Cuadratura (QEI) mdulo proporciona la interfaz para los codificadores
incrementales para la obtencin de los datos de posicin mecnicas.
Funciones relevantes:
SEtup_qei (opciones, filtro, MaxCount)

Configura el mdulo QEI. qei_status ()

Devuelve el estado del mdulo de QUI. qei_set_count (valor)


WRIT a valor de 16 bits para el contador de posicin.
qei_get_count ()

Lee el valor de 16 bits actual del contador de posicin.

Preprocesador relevante:
Ninguna
Las interrupciones relevantes:
#INT_QEI

Interrumpir el vuelco o el desbordamiento del contador de posicin.

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
Ninguna
Ejemplo de cdigo:
Valor Int16;
SEtup_qei (QEI_MODE_X2 |

Configuracin del mdulo QEI

QEI_TIMER_INTERNAL,
QEI_FILTER_DIV_2,
QEI_FORWARD);

Valor = qei_get_count ();

Leer el recuento.

RS232 I / O
Tesfunciones electrnicas y directivas se pueden utilizar para configurar y utilizar la funcionalidad RS232 I / O.
Funciones relevantes:
getc () o getch ()
getchar () o fgetc ()

Gets un personaje en el pasador de recibir (a partir de la corriente


especificada en caso de fgetc, la entrada estndar por defecto). Utilice
kbhit para comprobar si el personaje est disponible.

71

CCS C 10082015

gets () o fgets ()

Gets una cadena en el pasador de recibir (a partir de la corriente


especificada en caso de fgets, STDIN por defecto). Utilice getc recibir
cada personaje hasta que se encuentra de regreso.

putc () o putchar () o
fputc ()

Puts un personaje sobre el pasador de transmisin (en la secuencia


especificada en el caso de fputc, la salida estndar por defecto)

puts () o () fputs

Pone una cadena sobre el pasador de transmisin (en la secuencia


especificada en el caso de fputc, la salida estndar por defecto). Utiliza
putc para enviar cada carcter.

printf () o fprintf ()

Imprime la cadena con formato (en la secuencia especificada en el


caso de fprintf, la salida estndar por defecto). Consulte la ayuda para
obtener detalles sobre printf cadena de formato.

kbhit ()

Devuelve verdadero cuando un carcter se recibe en la memoria


intermedia en caso de RS232 hardware o cuando el primer bit es enviado
en el pasador de RCV en caso de RS232 software. til para el sondeo
sin tener que esperar en getc.

SEtup_uart (baudios, [stream])


o
SEtup_uart_speed (baudios, [stream])
hardware en tiempo de ejecucin.

Se utiliza para cambiar la velocidad de transmisin de la UART de


Especificacin de corriente es opcional. Consulte la ayuda de
opciones ms avanzadas.

ASSErt (condicin)
archivo y la lnea de salida de error.

Se comprueba la condicin y si las impresiones falsas el nombre de


Will no genera cdigo si se utiliza #DEFINE NODEBUG.

perror (mensaje)

Imprime el mensaje de error y el ltimo sistema de salida de error.

putc_send () o fputc_send ()

when usando transmitir tampn, que se utiliza para transmitir


datos desde la memoria intermedia. Ver descripcin de funciones
para obtener ms detalles sobre cuando es necesario.

rcv_buffer_bytes ()

when usando bfer de recepcin, devuelve el nmero de bytes de


memoria intermedia que todava tienen que ser recuperados.

tx_buffer_bytes ()

when usando buffer de transmisin, devuelve el nmero de bytes de


memoria intermedia que an necesitan ser enviados.

tx_buffer_full ()
transmisin est llena.

when usando buffer de transmisin, devuelve TRUE si buffer de

receive_buffer_full ()
est lleno.

when usando bfer de recepcin, devuelve TRUE si el bfer de recepcin

#useRS232

Configura el compilador para apoyar a las especificaciones RS232.

Las interrupciones relevantes:


INT_RDA
72

Interrumpir se activa cuando los datos de recepcin disponibles

Descripcin de las
funciones
INT_TBE

incendios de interrupcin cuando los datos de transmisin vaca

Algunos chips tienen ms de un UART hardware, y por lo tanto ms interrupciones.

73

CCS C 10082015

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
UART
AUARTE

Devuelve el nmero de UART en este PIC


Devuelve true si este es un UART UART avanzada

UART_RX

Devuelve el pasador por primera UART reciben en este PIC (ver PIN_XX)

UART_TX

Devuelve el pasador de transmisin para el primer UART en este PIC

UART2_RX

Devuelve el pasador de recepcin para el segundo UART en este PIC

UART2_TX
PIC

TX - Devuelve el pasador de transmisin para la segunda UART en este

Ejemplo de cdigo:
/ * Configurar y habilitar UART, primero utilice hardware UART sobre el CFP * /
#utilizar RS232 (UART1, baudios = 9600)
/ * Imprimir una cadena * /
printf ( "introduzca un carcter");
/ * Obtener un carcter * /
si (kbhit ())
c = getc ();

// Comprobar si un personaje se ha recibido


// Leer el carcter de la UART

RTOS
Tesfunciones e controlan el funcionamiento del sistema operativo en tiempo real CCS (RTOS). Este sistema
operativo es multitarea cooperativa y permite tareas que se programan para ejecutarse en intervalos de tiempo
especificados. Debido a que el RTOS no emplea interrupciones, el usuario debe tener cuidado al hacer uso de la
funcin rtos_yield () en cada tarea de manera que no se permita una tarea a ejecutar para siempre.
Funciones relevantes:
rtos_run ()

Empieza la operacin de la RTOS. Todas las tareas de gestin de


tareas son ejecutadas por esta funcin.

rtos_terminate ()

Thifuncin s termina la operacin de la RTOS y devuelve operacin para


el programa original. Funciona como un retorno de la funcin rtos_run ().

rtos_enable (tarea)

Permite a una de las tareas RTOS. Una vez que se activa una tarea,
la funcin rtos_run () llamar a la tarea cuando se produce su tiempo.
El parmetro de esta funcin es el nombre de la tarea est habilitado.

rtos_disable (tarea)

Desactiva una de las tareas RTOS. Una vez que una tarea est
desactivada, la funcin rtos_run () no va a llamar a esta tarea hasta que
se habilita mediante rtos_enable (). El parmetro de esta funcin es el
nombre de la tarea debe ser inhabilitado.

74

Descripcin de las
funciones

rtos_msg_poll ()

Devuelve verdadero si hay datos en la cola de mensajes de la tarea.

rtos_msg_read ()
la tarea.

Devuelve el siguiente byte de datos contenidos en la cola de mensajes de

rtos_msg_send (tarea, byte)

Enva un byte de datos a la tarea especificada. Los datos se


coloca en la cola de mensajes de la tarea de recepcin.

rtos_yield ()

Llamado con en uno de los RTOS tareas y devuelve el control del


programa a la funcin rtos_run (). Todas las tareas deben llamar a esta
funcin cuando haya terminado.

rtos_signal (sem)

Incrementa un semforo que se utiliza para transmitir la disponibilidad


de un recurso limitado.

rtos_wait (sem)

Esperes para el recurso asociado con el semforo para que estn


disponibles y luego disminuye al semforo para reclamar el
recurso.

rtos_await (expre)

Will espera para la expresin dada para evaluar a true antes de


permitir que la tarea de continuar.

rtos_overrun (tarea)
rtos_stats (tarea, stat)

Will retorno cierto si la tarea dada sobre sigui su tiempo asignado.


Devuelve el estadstico especificado en la tarea especificada. Las
estadsticas incluyen los tiempos mnimos y mximos para la tarea a
ejecutar y el tiempo total de la tarea ha estado en funcionamiento.

Preprocesador relevante:
#USO RTOS (opciones)

#TASK (opciones)

#TAREA

ThiDirectiva s se utiliza para especificar varios atributos diferentes


RTOS incluyendo el temporizador de utilizar, el tiempo de ciclo menor y si
o no las estadsticas deben estar habilitadas.
This directiva indica al compilador que la siguiente funcin es ser una
RTOS
tarea.
especFIEs la velocidad a la que la tarea debe ser llamado, el tiempo
mximo de la tarea estar autorizado a ejecutar, y qu tan grande es la
cola debe ser

Las interrupciones relevantes:


ninguna
Incluir archivos relevantes:
Ninguno todas las funciones estn construidas en
getenv relevantes () Parmetros:
ninguna
Ejemplo de cdigo:

...

#USO RTOS (temporizador = 0,


minor_cycle = 20 ms)
...
int sem;
75

CCS C 10082015

// RTOS utilizar temporizador cero, ciclo menor ser 20ms


#TAREA (tasa = 1s, max = 20 ms, la cola = 5)

76

// Tareas ejecutar, a razn de una vez por segundo

Descripcin de las
funciones
vnombre_tarea OID ();

// Con una duracin mxima de 20 ms y


// Una cola 5 byte

rtos_run ();

// Comienza el RTOS

rtos_terminate ();

// Termina el RTOS

rtos_enable (nombre_tarea);

// Permite a la tarea previamente declarado.

rtos_disable (nombre_tarea);

// Desactiva la tarea anteriormente declarados

rtos_msg_send (nombre_tarea, 5);

// Coloca el valor 5 en task_names cola.

rtos_yield ();

// devuelve el control a la RTOS

rtos_sigal (sem);

// Seales que el recurso representado por sem est disponible.

Para obtener ms informacin sobre el CCS RTOS favor

SPI
SPI es una norma de fluidos durante 3 4 hilos, comunicaciones full duplex nombrados por Motorola. La
mayora de los dispositivos PIC soportan los modos ms comunes SPI . CCS proporciona una librera de
soporte para el aprovechamiento de la funcionalidad del hardware y software basado SPI . Para el soporte de
software, consulte #USO SPI.
Funciones
relevantes:
setup_spi (modo)
SEtup_spi2 (modo)
setup_spi3 (modo)
SEtup_spi4 (modo)

Configurar el hardware SPI en el modo especificado. El modo configura


setup_spi2 (modo) tal cosa como maestro o esclavo modo, la velocidad
de reloj y la configuracin de disparo del reloj / datos.

Nota: para los dispositivos con doble SPI Interfaces una segunda funcin, setup_spi2 (), se
proporciona para configurar la segunda interfaz.
spi_data_is_in ()
datos.

Devuelve VERDADERO si el SPI bfer de recepcin tiene un byte de

spi_data_is_in2 ()
spi_write (valor)
spi_write2 (valor)

Transmits el valor sobre la interfaz SPI. Esto har que los datos que se
registraron hacia fuera en el pin SDO.

spi_read (valor)
spi_read2 (valor)

Pmirforms una transaccin SPI, donde el valor se registraron hacia


fuera en el pin SDO y los datos de frecuencia de reloj en el pin SDI se
devuelve. Si lo que desea es un reloj de datos, puede utilizar spi_read ()
sin un parmetro.

Preprocesador relevante:
Ninguna
Las interrupciones
relevantes:

Transaction (leer o escribir) ha completado en el perifrico indicado.

#int_ssp
#int_ssp2

77

CCS C 10082015

getenv relevantes () Parmetros:


SPI

78

Devuelve VERDADERO si el dispositivo tiene un perifrico SPI

Descripcin de las
funciones

Ejemplo de cdigo:
// Configurar el dispositivo para que sea un maestro, los datos transmitidos en
setup_spi transicin de reloj-H-a L (SPI_MASTER | SPI_H_TO_L |
SPI_CLK_DIV_16);
spi_write (0x80);

// 0x80 escritura en el dispositivo SPI

VirginiaLue = spi_read ();

// Leer un valor desde el dispositivo SPI

VirginiaLue = spi_read (0x80);


leyendo un valor.

// 0x80 escritura en el dispositivo SPI mismo tiempo que est

Timer0
Tesopciones e permite al usuario configurar y utilizar el Timer0. Est disponible en todos los dispositivos y
siempre est activado. El reloj / contador es de 8 bits en pic16s y 8 o 16 bits en pic18s. Se aumentar y tambin
proporciona interrumpir en caso de desbordamiento. Las opciones disponibles son diferentes y se enumeran en
el archivo de cabecera dispositivo.
Funciones relevantes:
SEtup_timer_0 (modo)
SEt_timer0 (valor) o
set_rtcc (valor)

Establece la fuente, etc para preescalar Timer0


yoNItializes el reloj Timer0 / contador. El valor puede ser un 8
bits o 16 bits dependiendo del dispositivo.

VirginiaLue = get_timer0
Preprocesador relevante:

Devuelve el valor del Timer0 reloj / contador


Ninguna

Las interrupciones relevantes:


INT_TIMER0 o INT_RTCC

incendios de interrupcin cuando se desborda TIMER0

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
TIMER0

Devuelve 1 si el dispositivo tiene Timer0

Ejemplo de cdigo:
para PIC18F452

SEtup_timer_0
(RTCC_INTERNAL
| RTCC_DIV_2 |
RTCC_8_BIT);

//conjuntos el reloj interno como fuente


// Y preescalar 2. En Timer0 20Mhz

// Se incrementar cada 0.4us en


este
// Configura y se desborda
cada
//102.4us
SEt_timer0 (0);

// Esto establece Timer0 registro para 0


79

CCS C 10082015

tiempo = get_timer0 ();

// Esto va a leer el registro del Timer0


//valor

80

Descripcin de las
funciones

Timer1
Tesopciones e permite al usuario configurar y utilizar el Timer1. El reloj / contador es de 16 bits en pic16s y pic18s.
Se aumentar y tambin proporciona interrumpir en caso de desbordamiento. Las opciones disponibles son
diferentes y se enumeran en el archivo de cabecera dispositivo.
Funciones relevantes:
SEtup_timer_1 (modo)

Desactiva o establece la fuente y preescalar para Timer1

SEt_timer1 (valor)

Inicializa el reloj Timer1 / contador

VirginiaLue = get_timer1

Devuelve el valor del Timer1 reloj / contador

Preprocesador relevante:
Ninguna
Las interrupciones relevantes:
INT_TIMER1

incendios de interrupcin cuando se desborda Timer1

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
CRONOM1

Devuelve 1 si el dispositivo tiene Timer1

Ejemplo de
cdigo: Para
PIC18F452
SEtup_timer_1 (T1_DISABLED);

// Desactiva Timer1

o
SEtup_timer_1 (T1_INTERNAL |
T1_DI V_BY_8);

//conjuntos el reloj interno como fuente


// Y preescalar como 8. En Timer1 20Mhz se incrementar
// Cada 1.6us en esta configuracin y se desborda cada
//104.896ms

SEt_timer1 (0);
tiempo = get_timer1 ();

// Esto establece Timer1 registro para 0


// Esto leer el valor del registro Timer1

Timer2
Tesopciones e permite al usuario configurar y usar Timer2. El reloj / contador es de 8 bits en pic16s y pic18s. Se
aumentar y tambin proporciona interrumpir en caso de desbordamiento. Las opciones disponibles son
diferentes y se enumeran en el archivo de cabecera dispositivo.
Funciones relevantes:
SEtup_timer_2 (modo,
tiempo, postscale)

Desactiva o establece el preescalar, perodo y un postscale para Timer2

SEt_timer2 (valor)

Inicializa el reloj Timer2 / contador

VirginiaLue = get_timer2

Devuelve el valor de la Timer2 reloj / contador


81

CCS C 10082015

Preprocesador relevante:
Ninguna
Las interrupciones relevantes:
INT_TIMER2

incendios de interrupcin cuando se desborda Timer2

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
TIMER2

Devuelve 1 si el dispositivo tiene Timer2

Ejemplo de
cdigo: Para
PIC18F452
SEtup_timer_2 (T2_DISABLED);

// Desactiva Timer2

o
SEtup_timer_2 (T2_DIV_BY_4,0xc0,2);

// Establece el preescalar como 4, perodo que 0xc0 y


// Postscales
como 2.
// En Timer2 20Mhz se incrementar cada .8us en este
// Configura desborda cada 154.4us e interrumpir cada 308.2us

SEt_timer2 (0);
tiempo = get_timer2 ();

// Esto establece Timer2 registro para 0


// Esto leer el valor del registro Timer1

Temporizador 3
Horar3 es muy similar a timer1. As que por favor refirase a la Horar1 segundocin para ms detalles.

Timer4
Horar4 es muy similar a Timer2. As que por favor refirase a la Minutero2 segundocin para ms detalles.

temporizador5
Tesopciones e permite al usuario configurar y usar temporizador5. El reloj / contador es de 16 bits y slo est
disponible en los dispositivos 18Fxx31. Se aumentar y tambin proporciona interrumpir en caso de
desbordamiento. Las opciones disponibles son diferentes y se enumeran en el archivo de cabecera dispositivo.
Funciones relevantes:
SEtup_timer_5 (modo)

Desactiva o establece la fuente y preescalar para

imer5 SEt_timer5 (valor)

Inicializa el reloj temporizador5 / contador

VirginiaLue = get_timer5

Devuelve el valor del reloj timer51 /

contador
82

Descripcin de las
funciones

Preprocesador relevante:
Ninguna
Las interrupciones relevantes:
INT_TIMER5

incendios de interrupcin cuando se desborda temporizador5

Incluir archivos relevantes:

Ninguno, todas las funciones incorporadas

getenv relevantes () parmetros:


temporizador5

Devuelve 1 si el dispositivo tiene temporizador5

Ejemplo de
cdigo: Para
PIC18F4431
SEtup_timer_5 (T5_DISABLED)

// Desactiva temporizador5

o
SEtup_timer_5 (T5_INTERNAL |
T5_DI V_BY_1);

//conjuntos el reloj interno como fuente y


// Preescala como 1.
// En temporizador5 20Mhz se incrementar cada .2us en este
// Configura y se desborda cada 13.1072ms

SEt_timer5 (0);

// Esto establece temporizador5 registro para 0

tiempo = get_timer5 ();

// Esto leer el valor del registro de temporizador5

Timera
Tesopciones e permite al usuario configurar y utilizar Timera. Est disponible en dispositivos con temporizador
Un hardware. El reloj / contador es de 8 bits. Se aumentar y tambin proporciona interrumpir en caso de
desbordamiento. Las opciones disponibles se enumeran en el archivo de cabecera del dispositivo.
Funciones relevantes:

setup_timer_A (modo)
Timera set_timerA

(valor)

= get_timerA ()

Desactivar o establece la fuente y preescalar para


Inicializa el reloj Timera / contador valor
Devuelve el valor del reloj Timera / contador

Preprocesador relevante:
Ninguna
Las interrupciones relevantes:
INT_TIMERA
Incluir archivos relevantes:

Interrumpir incendios cuando se desborda Timera


Ninguno, todas las funciones incorporadas

getenv relevantes () parmetros:


Timera

Devuelve 1 si el dispositivo tiene Timera

Ejemplo de cdigo:

83

CCS C 10082015

SEtup_timer_A (TA_OFF);

// Desactivar Timera

o
SEtup_timer_A

// Establece el reloj interno como fuente

(TA_INTERNAL | TA_DIV_8);

// Y preescalar como 8. En 20MHz Timera incrementar


// Cada 1.6us en esta configuracin y se desborda cada
//409.6us

SEt_timerA (0);

// Esto establece Timera registro a 0

tiempo = get_timerA ();

// Esto leer el valor del registro de Timera

TimerB
Tesopciones e permite al usuario configurar y utilizar timerB. Est disponible en dispositivos con hardware
TimerB. El reloj / contador es de 8 bits. Se aumentar y tambin proporciona interrumpir en caso de
desbordamiento. Las opciones disponibles se enumeran en el archivo de cabecera del dispositivo.
Funciones relevantes:

setup_timer_B (modo)
para timerB set_timerB

Desactivar o establece la fuente y de pre-escala


Inicializa el reloj timerB / contador

(valor)

valor = get_timerB ()

Devuelve el valor de la timerB reloj / contador

Preprocesador relevante:
Ninguna
Las interrupciones relevantes:
INT_TIMERB
Incluir archivos relevantes:

Interrumpir incendios cuando se desborda timerB


Ninguno, todas las funciones incorporadas

getenv relevantes () parmetros:


TIMERB

Devuelve 1 si el dispositivo tiene timerB

Ejemplo de cdigo:
SEtup_timer_B (TB_OFF);

// Desactivar timerB

o
SEtup_timer_B

// Establece el reloj interno como fuente

(TB_INTERNAL | TB_DIV_8);

// Y preescalar como 8. En 20MHz timerB incrementar


// Cada 1.6us en esta configuracin y se desborda cada
//409.6us

SEt_timerB (0);
tiempo = get_timerB ();

84

// Esto establece timerB registro para 0


// Esto leer el valor del registro de timerB

Descripcin de las
funciones

USB
Universal Serial Bus, o USB, se utiliza como un mtodo para dispositivos perifricos para conectarse y hablar con
un ordenador personal. CCS proporciona bibliotecas para interconectar un PIC al PC mediante USB mediante el
uso de un PIC con un perifrico USB interno (como el PIC16C765 o la familia PIC18F4550) o utilizando cualquier
PIC con un USB externa perifrica (la familia USBN9603 Nacional).
Funciones relevantes:
usb_init ()

Inicializa el hardware USB. A continuacin, esperar en un bucle infinito


para el perifrico USB para ser conectado al bus (pero eso no quiere
decir que se ha enumerado por el PC). Permitir utilizar la interrupcin y
USB.

usb_init_cs ()

The igual que usb_init (), pero no espera a que el dispositivo se conecta al
bus. Esto es til si el dispositivo no es alimentado por bus y puede
funcionar sin una conexin USB.

usb_task ()

Si se utiliza el sentido de conexin y los usb_init_cs () para la


inicializacin, entonces debe llamar peridicamente esta funcin para
mantener un ojo en el pasador de conexin sentido. Cuando el PIC est
conectado al bus, esta funcin ser entonces perpare el perifrico USB.
Cuando el PIC est desconectado del bus, se restablecer la pila USB y
perifrico. Permitir utilizar la interrupcin y USB.

Nota: En su aplicacin debe definir USB_CON_SENSE_PIN a la clavija de conexin de sentido.


usb_detach ()

Elimina el PIC desde el autobs. Se llamar automticamente por


usb_task () si se pierde la conexin, pero se puede llamar de forma manual
por el usuario.

usb_attach ()

Se conecta al PIC al bus. Se llamar automticamente por usb_task ()


si se hace la conexin, pero se puede llamar de forma manual por el
usuario.

usb_attached ()

Si se utiliza pasador sentido de conexin (USB_CON_SENSE_PIN),


devuelve TRUE si ese pin es alta. Otra cosa siempre devolver true.

usb_enumerated ()

Devuelve VERDADERO si el dispositivo ha sido enumerado por el PC. Si


el dispositivo se ha enumerado por el PC, eso significa que est en modo
de funcionamiento normal y se puede enviar / recibir paquetes.

usb_put_packet
(Punto final, los datos,
len, TGL)

Pcordns el paquete de datos en el bfer de punto final especificado.


Devuelve VERDADERO
yof xito, FALSE si el buffer est todava llena con el ltimo paquete.

usb_puts
(Punto final, los
datos, len, tiempo
de espera)

Sfinals los siguientes datos en el punto final especificado. usb_puts ()


difiere de usb_put_packet () en el que va a enviar mensajes mltiples
paquetes si los datos no caben en un paquete.

usb_kbhit (punto final)


bfer de recepcin es
usb_get_packet
(Punto final, ptr,
max)

Devuelve VERDADERO si el punto final especificado tiene datos en el

Reanuncios hasta un mximo de bytes de la memoria intermedia punto


final especificado y lo guarda en el puntero PTR. Devuelve el nmero de
bytes guardados en ptr.
85

CCS C 10082015

usb_gets (punto final,


ptr, mximo, tiempo de
espera)

86

Reanuncios un mensaje desde el punto final especificado. La


diferencia usb_get_packet () y usb_gets () es que usb_gets ()
esperar hasta que un mensaje completo ha recibido, que un
mensaje puede contener ms de una

Descripcin de las
funciones
packet. Devuelve el nmero de bytes recibidos.
Funciones relevantes CDC:
Un dispositivo USB CDC emular un dispositivo RS-232, y aparecer en su ordenador como un puerto
COM. Las funciones de seguimiento que proporcionan este / interfaz serie RS-232 virtuales
Nota: Cuando se utiliza la biblioteca de CDC, se pueden utilizar las mismas funciones anteriores, pero no
use la funcin asociada a los paquetes, tales como
usb_kbhit (), usb_get_packet (), etc.
usb_cdc_kbhit ()

The igual que kbhit (), devuelve TRUE si hay 1 o ms caracteres en el


buffer de recepcin.

usb_cdc_getc ()

The igual que getc (), lee y devuelve un carcter del buffer de recepcin.
Si no hay datos en el bfer esperar indefinidamente hasta que un
personaje ha sido recibido.

usb_cdc_putc (c)

The igual que putc (), enva un carcter. En realidad, pone un carcter en
el bfer de transmisin, y si la memoria intermedia de transmisin est
llena esperar indefinidamente hasta que haya espacio para el personaje.

usb_cdc_putc_fast (c)

The igual que usb_cdc_putc (), pero no esperar indefinidamente hasta


que haya espacio para el carcter en el buffer de transmisin. En esa
situacin se pierde el carcter.

usb_cdc_puts (* str)

Enva una cadena de caracteres (terminada en nulo) al puerto USB CDC.


Devolver FALSE si el bfer est ocupado, TRUE si tampn es de cadena
se puso en tampn para el envo. Toda la cadena debe encajar en punto
final, si la cadena es ms larga que tampn punto final a continuacin,
sern ignorados caracteres sobrantes.

usb_cdc_putready ()
personaje.

Devuelve TRUE si no hay espacio en el buffer de transmisin para otro

Preporcessor relevante:
Ninguna
Las interrupciones relevantes:
#INT_USB

Un evento USB ha ocurrido, y requiere la intervencin de la aplicacin. los


biblioteca USB que proporciona CCS asas esta interrupcin automtica.

Incluir archivos relevantes:


pic_usb.h

controlador capa de hardware para los controladores PIC16C765 familia


PICmicro con un perifrico USB interno.

pic18_usb.h

controlador capa de hardware para los controladores de la familia


PIC18F4550 PICmicro con un perifrico USB interno.

usbn960x.h

controlador capa de hardware para el Nacional USBN9603 /


USBN9604 perifrico USB externa. Puede utilizar este perifrico
externo para agregar USB a cualquier microcontrolador.

usb.h

Las definiciones comunes y prototipos utilizados por el controlador USB

87

CCS C 10082015

usb.c

ThUSB pila de correo, que se ocupa de las solicitudes de interrupcin USB


y USB de configuracin de punto final en 0.

usb_cdc.h

Un conductor que lleva el anterior incluye archivos para hacer un


dispositivo USB CDC, que emula un dispositivo RS232 legado y se
muestra como un puerto COM en el administrador de dispositivos de MS
Windows.

getenv relevantes () Parmetros:


USB

Devuelve TRUE si el controlador PIC tiene un USB interno integrado


Educacin
fsicaripher
al.

Ejemplo de cdigo:
Debido a la complejidad de ejemplo USB cdigo no se ajuste a aqu. Pero se pueden encontrar los
siguientes ejemplos instalados con el compilador de C de CCS:
ex_usb_hid.c

Un dispositivo HID sencilla

ex_usb_mouse.c

Un HID Ratn, cuando se conecta a su PC el cursor del ratn ir en


crculos.

ex_usb_kbmouse.c

Un ejemplo de cmo crear un dispositivo USB con mltiples


interfaces mediante la creacin de un teclado y un ratn en un solo
dispositivo.

ex_usb_kbmouse2.c

Un ejemplo de cmo utilizar mltiples informe HID ID de transmitir ms de


ene HID tipo de paquete, como se demuestra por un teclado y un ratn en
un solo dispositivo.

ex_usb_scope.c
demuestra.

Una clase especfica del fabricante utilizando transferencias a granel se

ex_usb_serial.c

Thbiblioteca virtual RS232 e CDC se demuestra con este RS232 <-> USB
ejemplo.

ex_usb_serial2.c

Otro ejemplo de la biblioteca virtual RS232 CDC, esta vez un


puerto del ejemplo ex_intee.c de usar USB en lugar de RS232.

Referencia de voltaje
Estas funciones configuran el mdulo de referencia Votlage. Estos estn disponibles slo en los chips soportados.
Funciones relevantes:
SEtup_vref (modo | valor)
Preprocesser relevante:
ninguna
Las interrupciones relevantes:
ninguna
88

Activa y establece el valor de referencia de tensin interna. Las


constantes se definen en el archivo .h del dispositivo.

Incluir archivos relevantes:


ninguno, todas las funciones incorporadas

Descripcin de las
funciones

89

CCS C 10082015

getenv relevantes () parmetros:


VREF

Devuelve 1 si el dispositivo tiene VREF

Ejemplo de cdigo:
para PIC12F675
#INT_COMP // manejador de
interrupcin comparador
visr OID () {
safe_condiciones = FALSO;
printf ( "nivel de advertencia !!!!
voltaje est por encima de 3.6V \ r \
n.");
}
SEtup_comparator (A1_VR_OUT_ON
_A2) // Establece 2 comparadores (A1 y VR
unnd A2 como salida)
{
SEtup_vref (VREF_HIGH |
15); // Establece 3,6 (* valor VDD / 32 + VDD / 4)
si vdd es 5.0V
minable_interrupts (INT_COMP); //
minable comparador de
interrumpir enable_interrupts
(global);
// Habilitar las interrupciones globales
}

WDT o temporizador de vigilancia


Diferentes chips ofrecen diferentes opciones para activar / desactivar o configurar el WDT.
Funciones relevantes:
SEtup_wdt ()
restart_wdt ()

Activa / desactiva la wdt o define la prescalar.


Reinicia el WDT, si es wdt permite que este se debe llamar
peridicamente para evitar un reinicio de tiempo de espera.

Para los chips de PCB / PCM que se activa / desactiva el uso de WDT o NOWDT fusibles mientras que en
el dispositivo PCH se realiza mediante la funcin setup_wdt.
El tiempo de espera para los chips de CI / PCM se establecen mediante la funcin setup_wdt y en PCH
mediante fusibles como
WDT16, WDT256 etc.
RESTART_WDT cuando se especifique en #Utilice RETRASO, #Utilice I2C y #Utilice RS232
declaraciones como esta #Utilice RETRASO (reloj = 20000000, restart_wdt) har que el WDT se
reinicie, si el tiempo de espera durante el retraso o I2C_READ o GETC.
Preprocesador relevante:
#FUSIBLES WDT / NOWDT
#FUSIBLES WDT16
Las interrupciones
pertinentes:
90

Activa / desactiva WDT en dispositivos de PCB / PCM


Grupos de continuidad el tiempo de espera en los dispositivos PCH

Ninguno

Descripcin de las
funciones

91

CCS C 10082015

Incluir archivos relevantes:


Ninguno, todas las funciones incorporadas
getenv relevantes () parmetros:
Ninguna
Ejemplo de
cdigo: Para
PIC16F877
#fusibles wdt setup_wdt
(WDT_2304MS);
while (true)
{restart_wdt ();
perform_activity
();
}
para PIC18F452
#fusible WDT1
setup_wdt
(WDT_ON); while
(true) {
restart_wdt ();
perform_activity ();
}
Algunos de los chips de PCB son compartir los bits prescalar WDT con Timer0 as las constantes prescalar
WDT se pueden utilizar con o setup_counters setup_timer0 o funciones setup_wdt.

INTERRUPT_ENABLED ()
Tsu funcin comprueba la bandera habilitado para la interrupcin de interrupcin y vuelve
especificada
TRUE si est establecido.

Syntax

INTERRUPT_ENABLED (interrupcin);

parmetros
interrupcin Devoluciones

enconstante terrupt- especificando la


valor booleano

Funcin
Disponibilidad

Thfuncin de correo comprueba el indicador de habilitacin de interrupcin


de la interrupcin especificada y devuelve TRUE cuando se establece.
Los dispositivos con interrupciones

requiere

Interrumpir constantes definidas en el archivo .h del dispositivo.

Ejemplos

yof (INTERRUPT_ENABLED (INT_RDA))


disable_interrumpir
(INT_RDA);

Ejemplos de archivos
UNlso ver
92

Ninguna
DISABLE_INTERRUPTS (),, Las interrupciones general,

Descripcin de las
funciones
CLEAR_INTERRUPT (),ENABLE_INTERRUPTS
(),,INTERRUPT_ACTIVE ()

93

CCS C 10082015

Corriente de E / S
Syntax: # include <ios.h> es necesario para utilizar cualquiera de los identificadores ios.
Output:

UNEDtput:
sTREAM << variable_or_constant_or_manipulator;
ene o ms
repeticiones
sTREAM mamy el arreglo con el nombre especificado en la
corriente = opcin #use RS232 o por el uso corriente de defecto cout.
sTREAM mamy tambin ser el nombre de una matriz de caracteres.
En este caso los datos se escriben a la matriz con un 0 terminador.
sTREAM mamY tambin sea el nombre de una funcin que acepta
un solo parmetro carbn. En este caso, la funcin se llama para
cada personaje sea
UNEDtput.
Virginiariables / constantes: Puede ser cualquier nmero entero, char,
float o de tipo fijo. char son matrices
UNEDtput como cadenas y todos los dems tipos se emiten como
una direccin de la variable.
mamnipulators:
lx hex formato a los nmeros
diciembre- Los nmeros de formato decimal (por defecto)
SEtprecision (x) -Set nmero de posiciones despus del
punto decimal setw (x) -Set nmero total de salida de
caracteres para los nmeros boolalpha- salida INT1 como
verdadera y falsa
noboolalphun INT1 -Salida como 1 y 0 (por
defecto) fija Floats- en formato decimal (por
defecto) Floats- notacin cientfica uso E
iosdeAVERIA- Todos los manipuladores a los
valores predeterminados endl -Salida CR / LF
extremos- Emite un nulo ( '\ 000')

Ejemplos:

Entrada:

COUt << "El valor es" << << hexagonal de datos << endl;
COUt << "El precio es $" << setw (4) << setprecision (2) << costo
<< endl; lcdputc << '\ f' << setw (3) << << recuento "" << min << ""
<< mximo; cadena1 << setprecision (1) << suma / cuenta;
string2 << << x ',' << Y;
sTREAM >> variable_or_constant_or_manipulator;
ene o ms
repeticiones
sTREAM puede ser el nombre especificado en la corriente = opcin
#use RS232 o por el uso corriente de defecto cin.
sTREAM tambin puede ser el nombre de una matriz de caracteres.
En este caso los datos se leen desde la matriz hasta el 0 terminador.

94

CCS C 10082015

sTREAM tambin puede ser el nombre de una funcin que devuelve un


nico carbn y tiene
norteo parmetros. En este caso, la funcin se llama para cada carcter
a entrar.
Make que la funcin devuelve un \ r dar por terminada la instruccin de
entrada.
Virginiariables / constantes: puede ser cualquier nmero entero, char,
float o de tipo fijo. char son matrices
input como cadenas. Los flotadores pueden utilizar el formato de E.
La lectura de cada artculo termina con cualquier carcter no vlido para
el tipo. Generalmente
yosistemas estn separados por espacios. El carcter de terminacin se
descarta. Al final
of ningn carcter de sentencia de entrada corriente se leen hasta un
retorno (\ r) se lee. No
carcter de terminacin se lee de una sola entrada Char.
manipulaIndicadores:
lx hex formato a los nmeros
diciembre- Los nmeros de formato decimal (por defecto)
noecho- Suprimir eco
strspace- Permitir espacios para introducirse en
las cadenas nostrspace- Espacios terminan
entrada de cadena (por defecto) iosdefault
manipuladores -Todas las configuraciones
predeterminadas
Ejemplos:

COUt << "Introduce el nmero de:";


cin >> valor;
COUt << "Introduce el ttulo:";
cin >> >> strSpace ttulo;
cin >> de datos [i] >> .recordid de datos [i] >> .xpos datos [i] >> .ypos datos
[i] .sample;
string1 >> de datos;
lcdputc << "\ FEscriba cuenta";
lcdputc << >> keypadgetc contar; // Leer desde el teclado, el eco de lcd
// Esta sintaxis slo funciona con
// definidos por el usuario funciones.

95

PREPROCESADOR
ANUARIO DE PRE-PROCESADOR
directivas pre-procesador todas comienzan con un # y son seguidos por un comando especfico. Sintaxis
depende del comando. Muchos de los comandos no permiten otros elementos sintcticos en el resto de la
lnea. Una tabla de comandos y una descripcin aparece en la lista de la pgina anterior.
Varias de las directivas del preprocesador son extensiones al estndar de C. C proporciona una directiva de preprocesador que los compiladores aceptarn e ignorar o actuar sobre los datos siguientes. Esta aplicacin
permitir a las directrices pre-procesador para empezar #Pragma. Para ser compatible con otros compiladores,
esto puede ser utilizado antes de caractersticas no estndar.
Ejemplos:
Ambos de los siguientes son vlidos
#EN LNEA
#Pragma EN LNEA

address .............................................................................................................................................................77
_unttribute_x...............................................................................................................................................................77
#comom #endasm #asm asis
........................................................................................................................................78
#poco............................................................................................................................................................................8
0 buildcount__
.........................................................................................................................................................80
#builre ........................................................................................................................................................................80
#porte.........................................................................................................................................................................81
#casmi ........................................................................................................................................................................82
_date_ ......................................................................................................................................................................82
#Delawaremulta.............................................................................................................................................................
.........83 Delawarefinedinc
.................................................................................................................................................................84
#devicmi .....................................................................................................................................................................84
_dispositivo_
...................................................................................................................................................................86
#yof expr #else #elif #endif ..........................................................................................................................................87
#mirror ........................................................................................................................................................................87
#export (opciones).......................................................................................................................................................88
archivo .....................................................................................................................................................................89
nombre
............................................................................................................................................................89
del
archivo
#fill_rom ....................................................................................................................................................................90
#fusibles .......................................................................................................................................................................90
#hexcomment ...........................................................................................................................................................91
#carn de
identidad...........................................................................................................................................................................
..92
#ignore_warnings .....................................................................................................................................................92
#import (opciones).......................................................................................................................................................93
#includmi ....................................................................................................................................................................94
#inlinmi .......................................................................................................................................................................94
#ent_xxxx ..................................................................................................................................................................95
#INT_DEFAULT .......................................................................................................................................................98
#ent_global................................................................................................................................................................98
lin
....................................................................................................................................................................98
mi
96

#list ...........................................................................................................................................................................99
#linmi ..........................................................................................................................................................................99
#locate ....................................................................................................................................................................100
#mdulo..................................................................................................................................................................100
#nolist .....................................................................................................................................................................101
#jefes ........................................................................................................................................................................101

97

CCS C 10082015

#OPt ........................................................................................................................................................................102
#Org ........................................................................................................................................................................102
#pin_select .............................................................................................................................................................103
orde ..................................................................................................................................................................105
nad .................................................................................................................................................................105
or
..................................................................................................................................................................106
pers
onal
b
pcm
PC
H
#pRagma .................................................................................................................................................................106
#prioridad...................................................................................................................................................................106
#pERFIL....................................................................................................................................................................107
#reserva .................................................................................................................................................................108
#ROM .......................................................................................................................................................................108
#sepatarifa ...............................................................................................................................................................109
#serialize ................................................................................................................................................................109
#tarea .......................................................................................................................................................................111
hora .................................................................................................................................................................111
#tipo.......................................................................................................................................................................112
#undeF ....................................................................................................................................................................113
_unicodmi .................................................................................................................................................................113
#nose captura...........................................................................................................................................................114
#nose retardo
..............................................................................................................................................................115
#nose dynamic_memory ..........................................................................................................................................116
#nose fast_io ............................................................................................................................................................117
#nose fixed_io ..........................................................................................................................................................117
#nose I2C ..................................................................................................................................................................117
#nosperfil de correo
()...........................................................................................................................................................119
#nose pwm ().............................................................................................................................................................119
#nose
RS232..............................................................................................................................................................120
#nose
RTOS.................................................................................................................................................................123
#nose
spyo..................................................................................................................................................................124
#nose standard_io ....................................................................................................................................................125
#nose
temporizador...............................................................................................................................................................12
6
#nose touchpad ........................................................................................................................................................127
#Washingtonrning
.................................................................................................................................................................128
#word......................................................................................................................................................................129
#zero_ram ..............................................................................................................................................................130

76

preprocesor

direccin
Una direccin de smbolo predefinido se puede utilizar para indicar un tipo
que debe contener una direccin de memoria de programa.
Por ejemplo:
direccin testa = 0x1000 // destinar 16 bits para una prueba y
// Inicializar a
0x1000

_attribute_x
Syntax: atributo x
Elementos:

x es el atributo que desea aplicar. Los valores vlidos para x son como sigue:
((lleno))
Por defecto, cada elemento de una estructura o unin estn acolchadas para ser espaciados
uniformemente por el tamao de
'ent '. Esto es para evitar un fallo de direccin cuando se accede a un elemento de
estructura. Vase el siguiente ejemplo:
struct
{
int8 a;
Int16 b;
} prueba;
On arquitecturas donde 'int' es de 16 bits (como dsPIC o PIC24 PICmicrocontrollers),
"prueba" tomara 4 bytes a pesar de que est compuesto de3 bytes. Al aplicar el atributo
'lleno' a esta estructura, entonces sera tomar 3 bytes como se pretenda originalmente:
satributo truct ((lleno))
{
int8 a;
Int16 b;
} prueba;
Se debe tener cuidado por parte del usuario al acceder a elementos individuales de una
estructura empaquetada - la creacin de un puntero a 'b' en 'prueba' y tratar de eliminar la
referencia de puntero que provocara un fallo de direccin. Cualquier intento de lectura /
escritura "b" se deben hacer en el contexto de la "prueba" por lo que el compilador sabe
que est lleno:
test.b = 5;
((Alineado (y))
Por defecto, el compilador Alocate una variable en la primera posicin de memoria libre. El
atributo alineado forzar al compilador para asignar una ubicacin para la variable
especificada en un lugar que es el mdulo del parmetro y. Por ejemplo:
INT8 matriz [256] atributo ((alineado (0x1000)));
This le dir al compilador para tratar de lugar 'array' en cualquiera de 0x0, 0x1000, 0x2000,
0x3000,
0x4000, Etc.
77

CCS C 10082015

Propsito

78

Para alterar algunos detalles en cuanto a cmo funciona el compilador

preprocesor

Ejemplos:

satributo truct ((lleno))


{
int8 a;
int8b;
} prueba;
engama T8 [256] atributo ((alineado (0x1000)));

Archivos de ejemplo:

Ninguna

#asm #endasm #asm asis


Syntax: #ASM o cdigo #ASM ASIS #ENDASM
Elementos:
Ejemplos:

bacalaoe es una lista de instrucciones en lenguaje ensamblador


int find_parity (int datos)
{
int cuenta;
#asm
MOV # 0x08, W0
MOV W0, cuente
CLR W0
bucle:
XOR.B datos, W0
datos RRC, W0
recuento de
DEC F BRA
NZ, MOV
bucle #
0x01, W0
AADIR
recuento,
recuento F
MOV, W0
MOV W0. _REGRESO_
#endasm
}

Archivos de
ejemplo:

FFT.c

UNlso Ver:

Ninguna

ANUNCIODWF f, d
f CLRF
f COMF, d
DECFSZ f, d
INCFSZ f, d
mesVF f, d
mesVPLW

ANDWF f, d
CLRW
DECF f, d
INCF f, d
IORWF f, d
mesVPHW
MOVWF f
79

CCS C 10082015
NOP
FRR f, d
SWAPF f, d

80

RLF f, d
SUBWF f, d
XORWF f, d

preprocesor

BCF f, b
BTFSC f, b
b UNDLW k
LLAMADA CLRWDT
TIENEOkay IORLW k
mesVLW k RETLW k
DORMIR XORLW
OPCIN TRIS k

BSF f, b
BTFSS f,
k

14 Bit
ADDLW k
SUBLW k
RETURN
RETFIE
f puede ser una (nmero de archivo) constante o variable de
un simple d
mamy ser una constante (0 o 1) o W o F
pensin completa
mamY un archivo (como el anterior) y una constante (0-7) o puede ser simplemente
un poco variable
referencia.
kmamY una expresin constante
Tenga en cuenta que todas las expresiones y comentarios son en C como sintaxis.
PIC 18
ANUNCIODW
F
CLRF
CPFSGT
DECFSZ
INFSNZ
mesVFF
NEGF
RRCF
SUBFWB
SWAPF
BCF
BTFSS
BN
BNOV
SOSTN
CLRWDT
NOP
EMPUJAR
RETFIE
DORMIR
IORLW
mesVLW
SUBLW
TBLRD
TBLWT
TBLWT

f, d
F
F
f, d
f, d
fs, d
F
f, d
f, d
f, d
pe
pe
nsi
n
n
n
or
s
k
k
k
*+
*
+*

ADDWFC
COMF
CPFSLT
DCFSNZ
IORWF
MOVWF
RLCF
RRNCF
SUBWF
TSTFSZ
BSF
BTG
BNC
BNZ
BZ
GRAJILLA
NOP
RCALL
RETLW
ADDLW
LFSR
METROULLW
XORLW
TBLRD
TBLWT

f, d
f, d
F
f, d
f, d
F
f, d
f, d
f, d
F
pe
f, d
n
n
n
or
n
k
k
f, k
k
k
**+

ANDWF
CPFSEQ
DECF
INCF
mesVF
METROULW
RLNCF
SETF
SUBWFB
XORWF
BTFSC
antes de
Cristo
BNN
BOV
LLAMADA
TIENEO
POPULAR
REINICIAR
REGRESO
ANDLW
mesVLB
RETLW
TBLRD
TBLRD
TBLWT

f, d
F
f, d
f, d
f, d
F
f, d
F
f, d
f, d
pensin
norte
norte
norte
norte, s
norte
s
k
k
k
*
+*
*-

The compilador establecer el bit de acceso en funcin del valor del registro de archivo.
Si slo hay un identificador de variable en el bloque #asm entonces el compilador
inserta una y antes de ella. Y si se trata de una expresin debe ser una expresin
vlida C que se evala como una constante (sin y aqu). En C, un nombre de
matriz no-subndice es un puntero y una constante (sin necesidad de Y).

81

CCS C 10082015

#poco
Syntax: #BIT carn de identidad =incgnita.y
Elementos:

carn de identidad yoes un identificador vlido C,


incgnitayos una constante o una variable C,
yyos una constante 0-7

Propsito:

Una nueva variable C (un bit) se crea y se coloca en la memoria en el byte x e y poco. Esto es til
para obtener acceso en C directamente a un bit en el procesadores funcin especial mapa de registro.
Tambin se puede utilizar para acceder fcilmente a un bit de una variable C estndar.

Ejemplos:

#bit T0IF = 0x b.2


...
T1IF = 0; // Borrar contador bandera de interrupcin 0

int resultado;
#bit result_odd = result.0
...
si (result_odd)

Ejemplo
archivos
:
UNlso Ver:

ex_glint.c

#BYTE,#RESERVA,#LOCATE,#WORD

buildcount
ONLy define si las opciones> Opciones de proyecto> Global Define
permite cambiar define globales.
This Identificacin del resuelve en un nmero que representa el nmero de
exitosa obra del proyecto.

#construir
Syntax: #BUILD (SEgment =unddress)
#CONSTRUIR(SEgment =unddress,SEgment =unddress)
#CONSTRUIR(SEgment =starta:miDakota del Norte)
#CONSTRUIR(SEgment =starta:miDakota del Norte,SEGMNuevo Testamento =starta:miDakota
del Norte)
#CONSTRUIR(nosleep)
Elementos:
SEgment yoEs uno de los siguientes segmentos de memoria que puede asignarse una
ubicacin: MEMORIA, RESET, o interrumpir
unddress yos una direccin de memoria ROM de ubicacin. comienzo unreenreunre utilizado para
especificar un rango de memoria que se utilizar.

82

preprocesor

starta yoEs la primera ubicacin ROM y enreyoes la ltima ubicacin ROM para ser utilizado.
nosleep yos se usa para prevenir el compilador de la insercin de un sueo al final de main ()
Bootload produces un archivo gestor de arranque de usar hexagonal (en orden, tamao de bloque
completo).
NOSLEEP_LOCK yos utiliza en lugar de un sueo al final de un principal A bucle infinito.
Propsito:

Ejemplos:

Ejemplo
archivos
:
UNlso Ver:

PIC18XXX dispositivos con ROM externa o dispositivos PIC18XXX sin ROM interna puede
dirigir el compilador de utilizar la memoria ROM. Cuando la vinculacin de mltiples unidades de
compilacin, esta directiva debe aparecer exactamente la misma en cada unidad de
compilacin.
#build (memoria = 0x20000: 0x2FFFF) // Asigna espacio de memoria
#build (reset = 0x200, 0x208 = interrupcin) // Asigna a empezar
//ubicaci
n
// De reset y
//interrump
ir
//
vectores
#build (reset = 0x200: 0x207, 0x208 = interrumpir: 0x2ff)
// Asigna espacio limitado
// Para el
rearme y
// Vectores de interrupcin.
#build (memoria = 0x20000: 0x2FFFF) // Asigna espacio de memoria

Nonortemi

#LOCATE,#RESERVA,#ROM,#OGRAMO

#byte
Syntax: #byte carn de identidad =incgnita
Elementos:

carn de identidad yoes un identificador vlido C,


incgnitayos una variable C o una constante

Propsito:

Si la ID ya se conoce como una variable C entonces esto va a localizar la variable en la direccin x.


En este caso, el tipo de variable no cambia de la definicin original. Si la identificacin no se conoce
se crea una nueva variable C y se coloca en la direccin x con el tipo int (8 bits)
AdvertenciaEn ambos casos la memoria en x no es exclusivo de esta variable. Otras variables
pueden estar situados en la misma ubicacin. De hecho, cuando x es una variable, entonces x
Identificacin y comparten la misma posicin de memoria.

Ejemplos:

estado #byte = 3
#byte b_port = 6
struct {

83

CCS C 10082015

r_w int corto;


c_d int corto;
int no utilizada: 2;
datos int: 4; } Un _port;

84

preprocesor

#byte a_port = 5
...
a_port.c_d = 1;

Ejemplo
archivos
:

ex_glint.c

UNlso Ver:
#bit,#localizar, #reserva,#word,Registros con nombre,Type especificadores,Type
Calificadores,enumerados
tipos,Estructuras y Uniones,TypedeF

#caso
Syntax: Numero de caso
Elementos:
Propsito:

Ninguna
Will hacer que el compilador sea sensible a maysculas. Por defecto, el compilador es sensible a
maysculas. Cuando la vinculacin de mltiples unidades de compilacin, esta directiva debe
aparecer exactamente la misma en cada unidad de compilacin.
Advertencia: No todos los programas de ejemplo de CCS, los encabezados y los
conductores se han probado con maysculas y minsculas encendidos.

Ejemplos:

#caso
int ESTADO;
func void () {
int status;
...
STATUS = Estado; // Copia condicin de local para
//global
}

Ejemplo
archivos
:
UNlso Ver:

ex_cust.c

Ninguna

_fecha_
Syntax: DATE__
Elementos:
Propsito:

Ejemplos:

Ninguna
This identificador pre-procesador se sustituye en tiempo de compilacin con la fecha de la
compilacin en la forma: "31- ENE-03"
printf ( "software fue compilado en");
printf (FECHA);

85

CCS C 10082015

Ejemplo

86

Ninguna

preprocesor

archivos:
UNlso Ver:

Ninguna

#definir
Syntax: #define carn de
identidad
texto o
#definir carn de identidad(incgnita,y...) De texto
Elementos:

carn de identidad yoEs un identificador de preprocesador, el texto es cualquier texto,


incgnita,yyos una lista de identificadores de preprocesador locales, y en esta forma puede haber
uno o ms identificadores separados por comas.

Propsito:

Se utiliza para proporcionar un simple reemplazo de cadena de la identificacin con el texto dado a
partir de este punto del programa y sigue.
En la segunda forma (a macro C) los identificadores locales se emparejan con identificadores
similares en el texto y que son reemplazados con el texto pasa a la macro donde se utiliza.
Si el texto contiene una cadena de la forma #idx entonces el resultado en la evaluacin ser el
parmetro id concatenado con la cadena x.
Si el texto contiene una cadena de la forma # # idx idy entonces idx parmetro se concatena con la
formacin de parmetro idy un nuevo identificador.
within el texto dos operadores especiales son compatibles definir:
#x es el operador stringize que resulta en "x"
incgnita##Y es el operador de concatenar lo que resulta en xy
The sintaxis macro varadic se apoya en la que se especifica el ltimo parmetro como ... y el
identificador local es utilizado va_args. En este caso, todos los argumentos restantes se combinan
con las comas.

Ejemplos:

BITS #define 8
= A + BITS A; // Igual que a = a + 8;

#define hi (x) (x << 4)


a = hi (a); // Igual que a = (a << 4);
IsEqual #define (a, b) (_ primaria ## un [b] == _ copia de seguridad de un ## [b])
// Iseaqual uso (nombres, 5) es el mismo que
// (primary_names [5] == backup_names [5])
str (s) #define #s
#define parte (dispositivo) # include str (dispositivo ##. h)
// Parte uso (16F887) es el mismo que
// #include "16F887.h"
#define DBG (...) fprintf (depuracin, VA_ARGS)

Ejemplo
archivos

:
87

CCS C 10082015

ex_stwt.c,
ex_macro.c

88

preprocesor

UNlso Ver:

#UNDEF, #IFDEF, #IFNDEF

definedinc
Syntax: valor = definedinc ( Virginiariable );
parmetros:

Virginiariable yoes el nombre de la variable, funcin o tipo de comprobacin.

Devoluciones:

Un estado de C para el tipo de carn de identidad entered como sigue:


0 - No se conoce
1 - typedef enum o
2 - Tipo de estructura o unin
3 - calificador typemod
4 - funcin definida
5 - prototipo de funcin
6 - compilador funcin incorporada
7 - variable local
8 - variable global

Funcin:

Thifuncin s comprueba el tipo de la variable o funcin que se pasa en y devuelve un especfico C


status en funcin del tipo.

Disponibilidad:

Todos

los dispositivos Se
requiere:

Ninguna.

Ejemplos:

ent x, y = 0;
y = definedinc (x); // Y volver 7 - x es una variable local

Ejemplo
archivos
:
UNlso Ver:

Nonortemi

Ninguna

#dispositivo
Syntax: #DEVICE doopciones de cadera
#DISPOSITIVO Seleccin del modo de compilacin
Elementos:

Las Opciones de chips

docadera yos el nombre de un procesador especfico (como: PIC16C74), Para obtener una lista
actualizada de dispositivos compatibles:
Inicio | RUN | CCSC + Q
Opciones unre clasificaciones para el funcionamiento normal del dispositivo. Las opciones vlidas
89

CCS C 10082015

son:

90

preprocesor

* = 5 Uso punteros 5 bits (por todas partes)


*=8
Use punteros de 8 bits (14 bits y 16 partes)
* = 16
Utilizar 16 bits punteros (por 14 partes bits)
ANUNCIOC = x
where x es el nmero de bits read_adc () debe
CIE = TRUE
Genecdigo tasas de depuracin de hardware compatible
con microchips CIE.
CIE = n
Para los chips con mltiples puertos ICSP especificar el
nmero de puerto que se utiliza. El valor predeterminado
WRITE_EEPROM = ASYNC
Evita WRITE_EEPROM de colgar mientras que la
escritura est llevando a cabo. Cuando se usa, no
escribir en la EEPROM tanto de ISR e ISR exterior.
WRITE_EEPROM = NOINT
Permite a las interrupciones que se produzcan
mientras que las operaciones del write_eeprom
(sondeo) es el bit de efectuado para comprobar si ha
completado las operaciones de escritura. Se puede
HIGH_INTS = TRUE
Utilice esta opcin para prioridad baja / alta interrumpe en el
PIC
%= F.
No 0 antes de una pinta decimal en el nmero f% inferior a
OVERLOAD = PALABRA CLAVE
overloading de funciones es ahora compatible.
Requiere el uso de la palabra clave para la sobrecarga.
OVERLOAD = AUTO
El modo por defecto para la sobrecarga.
PASS_STRINGS = IN_RAM
Una nueva manera de pasar cadenas constantes a
una funcin copiando en primer lugar la cadena a la
RAM y luego pasa un puntero a
CONST = READ_ONLY
Utiliza la definicin de ANSI palabra clave const, haciendo
CONST
CONST = ROM
Utiliza el compilador CCS CONST palabra clave tradicional
Delawarefinition, por lo que las variables CONST
ubicados en la memoria del programa.
NESTED_INTERRUPTS = TRUE
Permite la interrupcin de anidacin para los dispositivos
PIC24, dsPIC30, y dsPIC33. Permite una mayor prioridad
interrumpe para interrumpir menor
NORETFIE
funciones ISR (precedidos por un #int_xxx) utilizarn un
cdigo de operacin RETURN en lugar del cdigo de
operacin RETFIE. Esto no es una opcin de uso comn;
rara vez se utiliza en los casos en que el usuario
NO_DIGITAL_INIT
Normalmente el compilador establece todos los pines I / O a
digital y se apaga el comparador. Esta opcin evita que la
Tanto el chip y las opciones son opcionales, por lo que mltiples lneas #DEVICE se pueden utilizar
para definir completamente el dispositivo. Ten en cuenta que un #DEVICE con un identificador de
chip, eliminar todos los ajustes y #DEVICE #FUSE anteriores.

seleccin- modo de compilacin


ThDirectiva e #DEVICE permite la seleccin de modo de compilacin. Las palabras clave son
vlidos CCS2, CCS3, CCS4 y ANSI. El modo por defecto es CCS4. Para el CCS4 y el modo ANSI,
el compilador utiliza el NOLVP configuracin por defecto de fusibles, puestos a chips con estos
fusibles. El fusible es NOWDT defecto si no se realiza ninguna llamada a restart_wdt ().
CCS4 Este es el modo de compilacin por defecto. El tamao del puntero en este modo de
PCM
unnd PCH est establecido en * = 16 si la pieza tiene ms de RAM 0FF.
UNNSI
tipo de datos predeterminado est firmado todos los otros modos por defecto no
est firmado. La compilacin es sensible a maysculas, todos los dems modos
pueden utilizarse indistintamente. El tamao del puntero se establece en * = 16 si
la pieza tiene ms de memoria RAM 0FF.
CCS2 CCS3 Virginiar16 = NegConst8 se compila como: var16 = NegConst8 y 0xff (sin
extensin de signo) El tamao del puntero se establece en * = 8 para PCM y

85

CCS C 10082015

KEYWOSe requiere rd.


Slo CCS2

Propsito:

Thcorreo predeterminado #DEVICE ADC se establece en la resolucin de la


pieza, todos los otros modos por defecto a 8.
onebit = eightbits se compila como ONEBIT = Todos
los dems modos compilan como eightbits (= 0): =
(ONEBIT eightbits & 1)

Opciones de chips : Define el procesador objetivo. Cada programa debe tener exactamente un
#DEVICE con un chip. Cuando la vinculacin de mltiples unidades de compilacin, esta directiva
debe aparecer exactamente la misma en cada unidad de compilacin.
Seleccin del modo de compilacin - La seleccin del modo de compilacin permite cdigo
existente para ser compilado sin encontrar errores creados por el cumplimiento del compilador.
Como CCS descubre discrepancias en la forma en que las expresiones se evalan de acuerdo con
la norma ANSI, por lo general se realizar el cambio slo al modo ANSI y la prxima versin de
CCS.

Ejemplos:

Las Opciones de chips


#device PIC16C74
#device PIC16C67 * = 16
#device * = 16 = VERDADERO CIE
#device PIC16F877 * = 16 = 10 ADC
#device% = f.
printf ( "% f", 5.); // Imprimir 0.5, sin la Directiva se imprimir 0,5

seleccin- modo de compilacin


#device CCS2 // Esto establecer el ADC a la resolucin de la parte

Ejemplo
archivos
:
UNlso Ver:

ex_mxram.c , ex_icd.do , 16c74.marido ,

read_adc ()

_dispositivo_
Syntax: DISPOSITIVO
Elementos:

Ninguna

Propsito:
corriente

This identificador pre-procesador se define por el compilador con el nmero de la base de la


Device (a partir de una #DEVICE). El nmero base suele ser el nmero despus de la C en el
nmero de pieza. Por ejemplo, la PIC16C622 tiene un nmero de base de 622.

Ejemplos:

#if == dispositivo
71
SETUP_ADC_PORTS (ALL_DIGITAL);
#terminara si

Ejemplo
archivos
:

Nonortemi

UNlso Ver:
86

#DISPOSITIVO

preprocesor

# if expr #else #elif #endif


Syntax: #if excdigo
pr
#miLIF expr // Opcional, cualquier nmero puede ser utilizado
dood
a
#milse // Opcional
dood
a
#miNDIF
Elementos:

exPR yos una expresin con constantes, operadores estndar y / o identificadores del
preprocesador. dooda yos cualquier cdigo fuente en C estndar.

Propsito:

The pre-procesador evala la expresin de la constante y si no es cero procesar las lneas hasta
el #ELSE opcional o el #ENDIF.

Nota: No se puede usar variables de C en el #IF. Slo los identificadores creados a travs del
preprocesador #define se pueden utilizar.
Thexpresin e preprocesador DEFINE (id) puede utilizarse para devolver 1 si se define el ID y 0 si no
lo es.
== Y! = Operadores aceptan ahora una cadena constante a medida que los dos operandos.
Esto permite comparaciones en el tiempo de compilacin y se puede utilizar con GETENV ()
cuando se devuelve un resultado de cadena.
Ejemplos:

Ejemplo
archivos
:
UNlso Ver:

#if MAX_VALUE> 255


valor de largo;
#ms
int valor;
#terminara si
#if getenv ( "DISPOSITIVO") == "PIC16F877"
// Hacer algo especial para el PIC16F877
#terminara si

ex_extee.c

#IFDEF, #IFNDEF, getenv()

#error
Syntax: #ERROR texto
#De error / advertencia texto
#ERROR / informacin texto
Elementos:
texto yos opcional y puede ser cualquier texto
Propsito:

Fuerza al compilador que genere un error en la ubicacin de esta directiva aparece en el archivo. El
texto puede incluir macros que se ampliarn para la pantalla. Esto se puede usar para ver el macro
87

CCS C 10082015

expansin. El comando tambin puede ser utilizado para alertar al usuario de una situacin de tiempo
de compilacin no vlido.

88

preprocesor

Ejemplos:

#if BUFFER_SIZE> 16
#error tamao del bfer es demasiado grande
#terminara si
#error prueba Macro: min (x, y)

Ejemplo
archivos
:

ex_psp.do

UNlso Ver:

#WADVERTENCIA

#export (opciones)
Syntax: #export (opciones)
Elementos:

ARCHIVO = filname
The nombre del archivo que se genera al compilar. Si no se da, el filname ser el nombre del
archivo que se est compilando, con una .o o la extensin .hex (dependiendo del formato de
salida).
OLO = smbolo + smbolo + ..... + smbolo
ONLy los smbolos mencionados sern visibles para los mdulos que importar o vincular este
fichero objeto reubicable. Si ninguno ONLY o excepto que se utiliza, todos los smbolos se
exportan.
SALVO = smbolo + smbolo + ..... + smbolo
Todos los smbolos excepto los smbolos mencionados sern visibles para los mdulos que
importar o vincular este fichero objeto reubicable. Si ninguno ONLY o excepto que se utiliza,
todos los smbolos se exportan.
reubicable
CCS formato del fichero objeto reubicable. Debe ser importados o vinculados antes de cargarlos en
un PIC. Este es el formato por defecto cuando se utiliza el #export.
MALEFICIO
Intel formato de archivo HEX. Listos para ser cargados en un PIC. Este es el formato por defecto
cuando no se utiliza #export.
GAMA = empezar: stop
ONLY las direcciones de esta gama se incluyen en el archivo hexadecimal.
OFfset = Direccin
Direccin del archivo hexadecimal comienza en esta direccin (0 por defecto)
ODD
ONLy lugar bytes impares en el archivo hexadecimal.
INCLUSO
ONLY aun bytes colocada en el archivo hexadecimal.

Propsito:

This directiva le dir al compilador para generar un fichero objeto reubicable o un binario HEX
autnomo. Un fichero objeto reubicable debe estar vinculado en su aplicacin, mientras que un
binario HEX autnomo se puede programar directamente en el PIC.
89

CCS C 10082015

El compilador de lnea de comandos y el director de proyecto PCW IDE tambin se pueden utilizar para
compilar / enlace / construyen

90

preprocesor

mdulos y / o proyectos.
muldirectivas #export tiple se pueden usar para generar mltiples archivos hexagonales. esto puede
ser usado para 8722 como dispositivos con memoria externa.
Ejemplos:

Ejemplo
archivos
:

#export (Reubicable, SOLAMENTE = TimerTask)


TimerFunc1 anular (void) {/ * algn
cdigo * /} void TimerFunc2 (void) {/ *
algn cdigo * /} void TimerFunc3 (void)
{/ * algn cdigo * /} void TimerTask
(void)
{
TimerFunc1
();
TimerFunc2
();
TimerFunc3
();
}
/ *
Esta fuente se compila en un objeto reubicable, pero el objeto se les relaciona con
slo puede ver TimerTask ()
* /

Nonortemi

Ver tambin:
tiple

#IMPORTAR,#MESDule,Invocando el compilador de lnea de comandos,mulUnidad de Recopilacin

archivo
Syntax: FILE__
Elementos:
Propsito:

Ejemplos:

Ejemplo
archivos
:
UNlso Ver:

Ninguna
The identificador de preprocesador se sustituye en tiempo de compilacin con la ruta del archivo y
el nombre del archivo que se compila.
si (ndice> MAX_ENTRIES)
printf ( "Demasiadas entradas, archivo de origen:"
Archivo "en lnea" LINE "\ r \ n");

ASSErt.h

_ _ _ Line_

nombre del archivo__


Syntax: FILENAME__
91

CCS C 10082015

Elementos:

92

Ninguna

preprocesor

Propsito:
The identificador de preprocesador se sustituye en tiempo de compilacin con el nombre de archivo
del archivo que se est compilado.
Ejemplos:

Ejemplo
archivos
:

si (ndice> MAX_ENTRIES)
printf ( "Demasiadas entradas, archivo de origen:"
FILENAME "en la lnea" LINE "\ r \ n");

Nonortemi

UNlso Ver:

_ _ _ Line_

#fill_rom
Syntax: #fill_rom VirginiaLue
Elementos:
Propsito:

Ejemplos:
Ejemplo
archivos
:
UNlso Ver:

VirginiaLue yoEs un valor constante de 16 bits


This directiva especifica los datos que se utilizan para rellenar lugares ROM no utilizados.
Cuando la vinculacin de mltiples unidades de compilacin, esta directiva debe aparecer
exactamente la misma en cada unidad de compilacin.
#fill_rom 0x36

Nonortemi

#ROM

#fuses
Syntax: #FUSES opciones
Elementos:

opciones Virginiary dependiendo del dispositivo. Una lista de todas las opciones vlidas se ha
puesto en la parte superior de cada uno de los dispositivos .h archivo en un comentario para
referencia. La utilidad de edicin dispositivo PCW puede modificar un dispositivo en particular los
fusibles. El PCW men desplegable Ver | fusibles vlidos mostrarn todos los fusibles con sus
descripciones.
Algunas opciones comunes son:
LP, XT, SA, RC
WDT, NOWDT
PROTECT, NOPROTECT
PUT, NOPUT (Power Up Timer)
Una baja de voltaje, NOBROWNOUT

Propsito:

This directiva define lo que se fusiona debe ser fijado en la parte en la que est programada. Esta
directiva no afecta a la compilacin; sin embargo, la informacin se coloca en los archivos de salida.
93

CCS C 10082015

Si los fusibles deben estar en formato de Parallax, aadir una opcin de PAR. SWAP tiene la funcin
especial de canje (de la norma Microchip) la alta y baja bytes de datos no relacionados con
programas en el archivo Hex. Esto es necesario para algunos programadores de dispositivos.

94

preprocesor

Algunos fusibles son fijados por el compilador basado en otras directivas del compilador. Por ejemplo,
los fusibles del oscilador son establecidos por la directiva de retardo #Utilice. La depuracin,
depuracin y ICSPN Sin fusibles son establecidos por la
#DISPOSITIVO CIE = Directiva.
Algunos procesadores permiten diferentes niveles de ciertos fusibles. Para acceder a estos niveles,
asignar un valor a la mecha. Por ejemplo, en el 18F452, el fusible PROTECT = 6 colocara el valor 6
en CONFIG5L, la proteccin de los bloques de cdigo 0 y 3.
when vinculacin de varias unidades de compilacin tenga en cuenta esta directiva se aplica al
archivo objeto final. archivos posteriores en la lista de importacin pueden revertir los ajustes en los
archivos anteriores.
To eliminar todos los fusibles en la salida de archivos utilizan:
#FUSIBLES ninguno
To configurar manualmente los fusibles de la salida de archivos utilizan:
#FUSIBLES 1 = 0xC200 // establece config palabra 1 a 0xC200
Ejemplos:
Ejemplo
archivos
:
UNlso Ver:

#fuses SA, NOWDT

ex_sqw.do

Ninguna

#hexcomment
Sycomentario de texto #HEXCOMMENT para la parte superior del archivo hex: ntax
#comentario de texto HEXCOMMENT \ para el final del archivo hex
Elementos:

Ninguna

Propsito:

Pone un comentario en el archivo hex


Algunos programadores (MPLAB en particular) no les gusta los comentarios en la parte superior del
archivo hexadecimal.

Ejemplos:
Ejemplo
archivos
:
UNlso Ver:

#HEXCOMMENT Versin 3.1 - 20 MHz requiere de cristal

Nonortemi

Ninguna

95

CCS C 10082015

#carn de identidad
Syntax: #ID nmero 16
#CARN DE IDENTIDAD nmero,nmero,nmero,nmero
#CARN DE IDENTIDAD "nombre del archivo"
#CARN DE IDENTIDAD CHECKSUM
Elementos:
nmero 16 yoEs un nmero de 16 bits, nmero yos un nmero de 4 bits, el nombre de archivo es
cualquier nombre de archivo vlido y PC
dohecksum yos una palabra clave.
Propsito:

This directiva define la palabra de identificacin para ser programados en la pieza. Esta directiva
no afecta a la compilacin, pero la informacin se pone en el archivo de salida.
The primera sintaxis tendr un nmero de 16 bits y poner un mordisco en cada una de las
cuatro palabras de identificacin de la manera tradicional. La segunda sintaxis especifica el
valor exacto para ser utilizado en cada una de las cuatro palabras de identificacin.
when un nombre de archivo se especifica el ID se lee desde el archivo. El formato debe ser texto
simple con un CR / LF
unl final. La suma de comprobacin de palabras clave indica la suma de control del dispositivo debe
ser guardado como el ID.

Ejemplos:

Ejemplo
archivos
:
UNlso Ver:

#id 0x1234
#id "serial.num"
CHECKSUM #id

ex_cust.c

Ninguna

#ignore_warnings
Syntax: #ignore_warnings TODO
#NINGUNO IGNORE_WARNINGS
#IGNORE_WARNINGS Washingtonrnings
Elementos:

Washingtonrnings yos uno o ms nmeros de aviso separados por comas

Propsito:

This funcin suprime los mensajes de advertencia del compilador. Todo indica no se generar una
advertencia. NONE indica que se generarn todas las advertencias. Si los nmeros se enumeran a
continuacin, esas advertencias se suprimen.

Ejemplos:

#ignore_warnings 203
while (true) {
#ignore_warnings NINGUNO

Ejemplo
archivos
:

Nonortemi

UNlso Ver:
96

warning mensajes

preprocesor

import (opciones)
Syntax: import (opciones)
Elementos:

ARCHIVO = filname
The nombre del objeto que desea vincular con esta compilacin.
OLO = smbolo + smbolo + ..... + smbolo
ONLy los smbolos mencionados sern importados desde el fichero objeto reubicable especificado. Si
ninguno ONLY o
Excepto que se utiliza, todos los smbolos son importados.
SALVO = smbolo + smbolo + ..... + smbolo
The enumeran los smbolos no se pueden importar desde el archivo de objeto reubicable especificado.
Si ninguno ONLY o
Excepto que se utiliza, todos los smbolos son importados.
reubicable
CCS formato del fichero objeto reubicable. Este es el formato por defecto cuando se utiliza el import.
COFF
COFF archivo de formato de MPASM, C18 o C30.
MALEFICIO
Los datos importados son datos hexagonales rectos.
GAMA = empezar: stop
ONLdirecciones Y en este rango se leen desde el archivo hexadecimal.
UBICACIN = id
The identificador se hace una constante con la direccin de inicio de los datos importados.
SIZE = ID
The identificador se hace una constante con el tamao de los datos importados.

Propsito:
This directiva le dir al compilador que incluya (enlace) un objeto reubicable con esta unidad durante
la compilacin.
Normalmente se enlazarn todos los smbolos globales del archivo especificado, pero el excepto y
opciones slo puede prevenir ciertos smbolos de su vinculacin.
The compilador de lnea de comandos y el director de proyecto PCW IDE tambin se pueden utilizar
para compilar / enlace / construir mdulos y / o proyectos.
Ejemplos:

Import (FILE = timer.o, SOLAMENTE = TimerTask)


void main (void)
{
while (true)
TimerTask
();
}
/ *
timer.o est vinculada con esta compilacin, pero slo TimerTask () es visible en
el mbito de aplicacin de este objeto.
* /

97

CCS C 10082015
Ejemplo
Ninguna

98

preprocesor

archivos:
Ver tambin:
tiple

#EXPORTAR,#MESDule,Invocando el compilador de lnea de comandos,muU


l nidad de Recopilacin

#incluir
Syntax: # include <nombre del archivo>
o
#INCLUYE "nombre del archivo"
Elementos:

nombre del archivo yos un nombre de archivo vlido PC. Se puede incluir en coche normal y la
informacin de ruta. Un archivo con la extensin ".encrypted" es un archivo de PC vlido. La
directiva de compilacin #INCLUDE estndar aceptar archivos con esta extensin y descifrar
ellos, ya que son ledos. Esto permite incluir archivos para ser distribuidos sin liberar el cdigo
fuente.

Propsito:

Texast desde el archivo especificado se utiliza en este momento de la compilacin. Si no se


especifica una ruta completa del compilador utilizar la lista de los directorios especificados para el
proyecto para buscar el archivo. Si el nombre de archivo se encuentra en "", entonces el directorio
con el archivo fuente principal se busca en primer lugar. Si el nombre de archivo es en <> entonces
el directorio con el archivo fuente principal es buscado pasado.

Ejemplos:

# include <16C54.H>
# include <C: \ INCLUYE \ COMLIB \ MYRS232.C>

Ejemplo
archivos
:

ex_sqw.do

UNlso Ver:

Ninguna

#en lnea
Syntax: #INLINE

Elementos:
Propsito:

Ejemplos:

Ninguna
Contares el compilador que la funcin inmediatamente despus de la Directiva ha de aplicarse
EN LNEA. Esto har que se coloque una copia duplicada del cdigo en todas partes es la funcin
llamado. Esto es til para ahorrar espacio en la pila y para aumentar la velocidad. Sin esta
directiva el compilador va a decidir cundo es mejor que los procedimientos en lnea.
#en lnea
swapbyte (int & a, int & b) {
int t;
t = a;
a = b;
b = t;
}

99

CCS C 10082015

Ejemplo
archivos
:
UNlso Ver:

ex_cust.c

#SEPARAR

#int_xxxx
Syntax:

#INT_AD

UNnalog a la conversin digital completo

#INT_ADOF
#INT_BUSCOL

Analgico de tiempo de espera de la conversin


digital
colisin de autobs

#INT_BUSCOL2

colisin de bus 2 detecta

#INT_BUTTON

Presionar el botn

#INT_CANERR

Se produjo un error en el mdulo CAN

#INT_CANIRX

#INT_CCP1

Un mensaje no vlido se ha producido en el bus


CAN
Puede recibir tampn 0 ha recibido un nuevo
mensaje
Puede recibir tampn 1 ha recibido un nuevo
mensaje
Puede transmitir bfer 0 ha completado la
transmisin
Puede transmitir bfer 0 ha completado la
transmisin
Puede transmitir bfer 0 ha completado la
transmisin
Actividad bus de atencin se ha producido en el bus
CAN
Comparar capturar o en la unidad 1

#INT_CCP2

Capturar o en la unidad de comparacin 2

#INT_CCP3

Comparar capturar o en la unidad 3

#INT_CCP4

Comparar capturar o en la unidad 4

#INT_CCP5

Comparar capturar o en la unidad 5

#INT_COMP

comparador de detectar

#INT_COMP0

Comparador 0 detectar

#INT_COMP1

Comparador 1 detectar

#INT_COMP2

Comparador 2 detectar

#INT_CR

actividad criptogrfica completa

#INT_EEPROM

WRIte completa

#INT_ETH

mdulo Ethernet de interrupcin

#EN EL TEXTO

Exinterrupcin externa

#INT_EXT1

Exinterrupcin externa # 1

#INT_EXT2

Exinterrupcin externa # 2

#INT_EXT3

Exinterrupcin externa # 3

#INT_I2C

I2C interrupcin (slo en 14000)

#INT_IC1

Captura de entrada # 1

#INT_IC2QEI

Captura 2 / entrada de interrupcin QEI

#INT_CANRX0
#INT_CANRX1
#INT_CANTX0
#INT_CANTX1
#INT_CANTX2
#INT_CANWAKE

10
0

preprocesor

#IC3DR
interrupcin

Captura de la entrada 3 / Cambiar direccin de

#INT_LCD

Lla actividad de CD

#INT_LOWVOLT

Low tensin detectada

#INT_LVD

Low tensin detectada

#INT_OSC_FAIL

oscilador sistema fall

#INT_OSCF

oscilador sistema fall

#INT_PMP

Paralelo interrupcin Maestro del puerto

#INT_PSP

datos en paralelo esclavo de puerto en

#INT_PWMTB

PWM Base de tiempo

#INT_RA

Un puerto de cualquier cambio en A0_A5

#INT_RB

Puerto B cualquier cambio en B4-B7

#INT_RC

El puerto C cualquier cambio en C4-C7

#INT_RDA

RS232 reciben datos disponibles

#INT_RDA0

RS232 reciben datos disponibles en tampn 0

#INT_RDA1

RS232 reciben datos disponibles en tampn 1

#INT_RDA2

RS232 reciben datos disponibles en tampn 2

#INT_RTCC

Horar 0 (RTCC) de desbordamiento

#INT_SPP

Streaming de puerto paralelo de lectura / escritura

#INT_SSP

actividad I2C SPI o

#INT_SSP2

actividad I2C SPI o por el puerto 2

#INT_TBE

bfer de transmisin RS232 vaca

#INT_TBE0

bfer de transmisin RS232 0 vaco

#INT_TBE1

bfer de transmisin RS232 1 vaca

#INT_TBE2

bfer de transmisin RS232 2 vaca

#INT_TIMER0

Horar 0 (RTCC) de desbordamiento

#INT_TIMER1

Horar 1 desbordamiento

#INT_TIMER2

Horar 2 desbordamiento

#INT_TIMER3

Horar 3 desbordamiento

#INT_TIMER4

Horar 4 desbordamiento

#INT_TIMER5

Horar 5 desbordamiento

#INT_ULPWU

Ultra-baja potencia hasta estela de interrupcin

#INT_USB

Actividad de bus serie universal

Tenga en cuenta muchas opciones ms #INT_ estn disponibles en los chips especficos.
Compruebe los dispositivos .h archivo para obtener una lista completa de un chip dado.
Elementos:
Propsito:

Ninguna
Tese directivas especifican la siguiente funcin es una funcin de interrupcin. funciones de
interrupcin pueden no tener ningn parmetro. No todas las directivas se pueden utilizar con todas
las piezas. Ver los dispositivos .h archivo para todas las interrupciones vlidas para la pieza o en
PCW utilizar la vista de tirar hacia abajo | Ints vlidos

The compilador generar cdigo para saltar a la funcin cuando se detecta la interrupcin. Se generar
cdigo para guardar y restaurar el estado de la mquina, y borrar el indicador de interrupcin. Para
evitar que la bandera de
101

CCS C 10082015

Being aclar aadir NOCLEAR despus de la #INT_xxxx. El programa de aplicacin


debe llamar ENABLE_INTERRUPTS (INT_xxxx) para activar inicialmente la
interrupcin junto con el ENABLE_INTERRUPTS (GLOBAL) para habilitar las
interrupciones.
The palabras clave alto y rpido puede ser utilizado con el compilador PCH para marcar una
interrupcin como de alta prioridad. Una interrupcin de alta prioridad puede interrumpir a otro
controlador de interrupciones. Una interrupcin marcada RPIDO se lleva a cabo sin guardar o
restaurar los registros. Usted debe hacer lo menos posible y guardar los registros que deben ser
salvados por su cuenta. Las interrupciones marcado ALTA se puede utilizar normalmente. Ver
#Dispositivo para obtener informacin sobre la construccin con las interrupciones de alta prioridad.
Un resumen de los diferentes tipos de interrupciones PIC18:
#INT_xxxx
Normal (prioridad baja) interrumpa. Compilador guarda / restaura
registros bsicos. Esta interrupcin no interrumpir cualquier
interrupcin en curso.
#INT_xxxx RPIDO
interrupcin de alta prioridad. Compilador NO guardar / restaurar
registros bsicos. Esta interrupcin interrumpen cualquier interrupcin
de la normalidad en curso.
ONLy se le permite en un programa.
#INT_xxxx ALTA
interrupcin de alta prioridad. Compilador guarda / restaura
registros bsicos. Esta interrupcin interrumpen cualquier
interrupcin de la normalidad en curso.
#INT_xxxx NOCLEAR
The compilador no se borrar la interrupcin.
Thcdigo de usuario e en la funcin debe llamar
clear_interrput () para desactivar la alarma en este
caso.
#INT_GLOBAL
Compilador genera ningn cdigo de interrupcin. funcin de
usuario se encuentra en la direccin 8 para el procesamiento
de alarmas de usuario.
Algunas interrupciones que se muestran en el archivo de cabecera dispositivos son slo para las
interrupciones activar / desactivar. por
ejemplo, INT_RB3 se puede utilizar en activar / interrumpe para permitir B3 pin. Sin embargo, el
manejador de interrupciones es
#INT_RB.
Del mismo modo INT_EXT_L2H establece el lmite de interrupcin a la cada y el manejador es
#INT_EXT.
Ejemplos:

#int_ad
adc_handler ()
{
adc_active = FALSO;
}
#int_rtcc noclear
ISR () {
...
}

Ejemplo
10
2

archivos:

preprocesor

Smimi
UNlso Ver:

ex_sisR. C unnortereex_stwt.c For programas de ejemplo completos.


enable_interrupts (),disable_interrupts (),#INT_DEFAULT,#INT_GLOBAL,#PRIORIDAD

103

CCS C 10082015

#INT_DEFAULT
Syntax: #INT_DEFAULT
Elementos:

Ninguna

Propsito:

Ejemplos:

The siguiente funcin ser llamada si el PIC desencadena una interrupcin y no se define ninguna
de las banderas de interrupcin. Si se encuentra en posicin una interrupcin, pero no es el que se
dispara, la funcin #INT_DEFAULT ser llamado.
default_isr
#int_default ()
{
printf ( "inexplicable interrupcin \ r \ n");
}

Ejemplo
archivos
:

Nonortemi

UNlso Ver:

#INT_xxxx,#INT_global

#int_global
Syntax: #INT_GLOBAL
Elementos:

Ninguna

Propsito:

This directiva hace que la siguiente funcin para reemplazar el despachador compilador de
interrupcin. La funcin normalmente no es necesaria y debe utilizarse con gran precaucin. Cuando
se utiliza, el compilador no genera cdigo de puesta en marcha o cdigo de limpieza, y no guarda los
registros.

Ejemplos:

#int_global
isr () {// se ubicar en la posicin 4 para virutas PIC16.
#asm
RETFIE
isr_flag BSF
#endasm
}

Ejemplo
archivos
:

ex_glint.c

UNlso Ver:

#INT_xxxx

lnea
Syntax: Lnea
Elementos:
10
4

Ninguna

preprocesor

Propsito:
The identificador de preprocesador se sustituye en tiempo de compilacin con el nmero de lnea
del archivo que se est compilado.
Ejemplos:

Ejemplo
archivos
:
UNlso Ver:

si (ndice> MAX_ENTRIES)
printf ( "Demasiadas entradas, archivo
de origen:"
Archivo "en lnea" LINE "\ r \ n");

ASSErt.h

_ _ archivo_ _

#lista
Syntax: #list
Elementos:

Ninguna

Propsito:
#LIST comienza a insertar o reanuda la insercin de lneas de cdigo en el archivo .LST despus
de un #NOLIST.
Ejemplos:

Ejemplo
archivos
:
UNlso Ver:

#NOLIST // No saturar el archivo de lista


# include <cdriver.h>
#LISTA

16c74.marido

#NOLIST

#lnea
Syntax: #line nombre de archivo nmero
Elementos:
Propsito:

Ejemplos:

El nmero es decimal entero no negativo. Nombre del archivo es opcional.


The C preprocesador informa al compilador de C de la ubicacin en el cdigo fuente. Este cdigo
se utiliza simplemente para cambiar el valor de las variables _LINE_ y _fichero_.
1. void main () {
#line 10 // especifica el nmero de lnea que
// Debe ser informado
// La siguiente lnea de entrada
2. #line 7 "hola.c"
// Nmero de lnea en el archivo de origen
// Hola.c y se establece el
// Lnea 7 como lnea actual

105

CCS C 10082015

// Y hola.c como archivo actual

10
6

preprocesor

Ejemplo
archivos
:
UNlso Ver:

Nonortemi

Ninguna

#localizar
Syntax: #LOCATE carn de identidad=incgnita
Elementos:

carn de identidad yoes una variable C,


incgnitayoes una direccin de memoria constante

Propsito:

#LOCATE asigna una variable C a una direccin especificada. Si la variable C no se defini


anteriormente, se define como un INT8.
Una forma especial de esta directiva se puede utilizar para localizar todas las funciones A partir de
variables locales en una ubicacin fija.
Uso: #LOCATE Auto = Direccin
This directiva colocar la variable C indirected en la direccin solicitada.

Ejemplos:

// Esto localizar la variable flotador en 50-53


// Y C no utilizar esta memoria para otra
// Variables ubicadas de forma
automtica. flotar x;
#locate x = 0 x 50

Ejemplo
archivos
:

ex_glint.c

UNlso Ver:

#porte,#poco,#reserva,#word,Nombred Registros,Type especificadores,Type Calificadores,Los tipos


enumerados,Estructuras y Uniones,TypedeF

#mdulo
Syntax: #MODULE
Elementos:
Propsito:

Ninguna
Todos los smbolos globales creados a partir de la #MODULE al final del archivo solamente
sern visibles dentro de ese mismo bloque de cdigo (y archivos # include dentro de ese bloque).
Esto puede utilizarse para limitar el alcance de las variables globales y funciones incluyen dentro
de los archivos. Esta directiva tambin se aplica a pre-procesador
#Delawaremultas.
Nota: Los extern y datos estticos calificadores tambin pueden utilizarse para denotar mbito de las
variables y
funciona como en la metodologa de C estndar. #MODULE Le aade algunos beneficios de que el
pre-procesador
#DEFINE se puede dar alcance, que normalmente no se pueden hacer en la metodologa de C
estndar.
107

CCS C 10082015

Ejemplos:

10
8

int GetCount (void);

preprocesor

SetCount void (int newCount);


#MDULO
int g_count;
#define G_COUNT_MAX 100
int GetCount (void) {return (g_count);}
SetCount vaco (int newCount) {
si (newCount>
G_COUNT_MAX)
newCount =
G_COUNT_MAX;
g_count = newCount;
}
/ *
las funciones GetCount () y SetCount () tienen un alcance global, pero la g_count
variable y el # define G_COUNT_MAX slo tiene alcance a este archivo.
* /

Ejemplo
archivos
:

Nonortemi

Ver tambin:

#EXPORTAR,Invocando el compilador de lnea de comandos,mulUnidad de Recopilacin tiple

#nolist
Syntax: #NOLIST
Elementos:

Ninguna

Propsito:

Detiene la insercin de lneas de cdigo en el archivo .LST (hasta un #list)

Ejemplos:

Ejemplo
archivos
:
UNlso Ver:

#NOLIST // No saturar el archivo de lista


# include <cdriver.h>
#LISTA

16c74.marido

#LIST

#ocs
Syntax: #OCS x
Elementos:

x es la velocidad del reloj y puede ser 1 Hz a 100 MHz.

Propsito:

Se utiliza en lugar de la demora #use (reloj = x)

Ejemplos:

# include <18F4520.h>
#device CIE = TRUE
#OCS 20 MHz
RS232 #Utilice (depurador)

109

CCS C 10082015

void main () {
-------;
}

Ejemplo
archivos
:
UNlso Ver:

Nonortemi

#Usar retraso

#optar
Syntax: #OPT norte
Elementos:
Todos los dispositivos: norteyos el nivel de optimizacin 1-11 o mediante el uso de la palabra
"compresa" para PIC18 y mejoradas
familias PIC16.
Propsito:

Ejemplos:
Ejemplo
archivos
:
UNlso Ver:

Thnivel de optimizacin de correo se establece en la presente Directiva. Este ajuste se aplica a


todo el programa y puede aparecer en cualquier parte del archivo. El valor por defecto es 9 para
PCW normal. Cuando se especifica Comprimir la optimizacin se establece en un nivel extremo
que causa una imagen ROM muy apretado, el cdigo est optimizado para el espacio, no la
velocidad. Depuracin con este nivel de mi ser ms difcil.

#opt 5
Nonortemi

Ninguna

#org
Syntax: #ORG starta,miDakota del Norte
o
#ORG SEgment
o
#ORG starta,mind {}
o
#ORG starta,mind automtico=0
#ORG starta,mind DEFAULT
o
#ORG DEFECTO
Elementos:

starta yoEs la primera ubicacin ROM (direccin de palabra) para utilizar, enreyoEs la ltima
ubicacin ROM, SEgment yos la ubicacin de inicio ROM desde un #ORG anterior

Propsito:

This Directiva fijar la siguiente funcin, o declaracin de constante ROM en una ROM especfica
unrea. Final puede omitirse si un segmento se defini previamente si solo deseas aadir otra funcin
para el segmento.
Siga el ORG con un {} slo para reservar el rea con nada insertado por el compilador.

11
0

preprocesor

La memoria RAM para una funcin ORG'd se puede restablecer a la memoria baja por lo que las
variables locales y los araazos

111

CCS C 10082015

Virginiariables se colocan en la memoria baja. Esto slo se debe utilizar si la funcin ORG'd no
regresar a la persona que llama. La RAM usada superponerse a la RAM del programa principal.
Aadir un AUTO = 0 en el extremo de la
#Olnea de RG.
Si se utiliza la palabra clave DEFAULT entonces este rango de direcciones se utiliza para todas las
funciones de usuario y compilador generado a partir de este punto en el archivo hasta que se
encuentre una DEFAULT #ORG (sin rango de direcciones). Si una funcin compilador se llama desde
el cdigo generado mientras DEFAULT es, en efecto, el compilador genera una nueva versin de la
funcin dentro del rango de direcciones especificado.
#ORG se puede usar para localizar los datos en la memoria ROM. Debido CONSTANTE se
implementan como funciones de las
#ORG debe proceder del CONSTANTE y necesita una direccin de inicio y fin. Para una
declaracin ROM slo la direccin de inicio debe ser especificado.
when vinculacin de varias unidades de compilacin tenga en cuenta esta directiva se aplica al
archivo objeto final. Es un error si cualquier #ORG se solapa entre los archivos a menos que el
#ORG coincide exactamente.
Ejemplos:

#ORG 0x1E00, 0x1FFF


MyFunc () {
// Esta funcin encuentra en 1E00
}
#ORG 0x1E00
Anotherfunc () {
// Esto ser en algn lugar 1E00-1F00
}
#ORG 0x800, 0x820 {}
// Nada ser a 800-820
#ORG 0x1B80
ROM int32 seridl_N0 = 12345;
#ORG 0x1C00, 0x1C0F
Const char ID [10} = { "123456789"};
// Este ID ser a 1C00
// Nota algn cdigo extra
// Proceder al 123456789
#ORG 0x1F00, 0x1FF0
cargador vaco () {
.
.
.
}

Ejemplo
archivos
:
UNlso Ver:

cargador.do

#ROM

#pin_select
11
2

preprocesor

Syntax: funcin #PIN_SELECT = pin_xx

113

CCS C 10082015

Elementos:

funcin yos el nombre de la funcin pasador Microchip definidos, tales como: U1RX
(UART1 recibir), INT1 (interrupcin externa 1), T2CK (2 temporizador de reloj), IC1
(captura de la entrada 1), OC1 (captura de la salida 1).

INT1 interrupcin externa 1


INT2
INT3
T0CK
T3CK
CCP1
CCP2
T1G
T3G
U2RX
U2CK
SDI2
SCK2IN
SS2IN
FLT0
T0CKI
T3CKI
RX2
NULO
C1OUT
C2OUT
U2TX
U2DT
SDO2
SCK2OUT
SS2OUT
ULPOUT
P1A
P1B
P1C
P1D
P2A
P2B
P2C
P2D
TX2
DT2
SCK2
SSDMA

ExInterrupcin externa 2
ExInterrupcin externa 3
HoraReloj externo r0
HoraReloj externo R3
Captura de la entrada 1
Captura de la entrada 2
HoraEntrada r1 Puerta
HoraEntrada Puerta R3
Recibir EUSART2 asncrono / sncrono
Recibir (tambin llamado: RX2)
Entrada EUSART2 asncrono Reloj
Entrada de datos SPI2
Entrada SPI2 Reloj
SPI2 Slave Select Input
PWEntrada M Falla
HoraEntrada r0 reloj externo
HoraR3 entrada de reloj externo
EUSART2 asncrono de transmisin / asncrono
Salida del reloj (tambin llamado: TX2)
NULO
Comparador 1 Salida
Comparador de salida 2
EUSART2 asncrono de transmisin / asncrono
Salida del reloj (tambin llamado: TX2)
EUSART2 sncrono de transmisin (tambin llamado: DT2)
Salida de Datos SPI2
Salida SPIC2 Reloj
SPI2 Esclavo Seleccin de la salida
Wake-Up Ultra Low-Power Evento
Comparar ECCP1 o el canal de salida PWM Un
ECCP1 salida PWM mejorado, Canal B
ECCP1 salida PWM mejorado, Canal C
ECCP1 salida PWM mejorado, Canal D
Comparar ECCP2 o el canal de salida PWM Un
ECCP2 salida PWM mejorado, Canal B
ECCP2 salida PWM mejorado, Canal C
ECCP1 salida PWM mejorado, Canal D
EUSART2 asncrono de transmisin / asncrono
Salida del reloj (tambin llamado: TX2)
EUSART2 sncrono de transmisin (tambin
llamado: U2DT)
Salida SPI2 Reloj
SPI DMA esclavo Seleccionar

pin_xincgnitayos El CCS present definicin de patillas. Por ejemplo: PIN_C7, PIN_B0, PIN_D3, etc.
Propsito:

when el uso de chips de PPS un #PIN_SELECT debe ser aparecer ante estos
perifricos se pueden utilizar o se hace referencia.

Ejemplos
:

#pin_select U1TX = PIN_C6


#pin_select U1RX = PIN_C7
#pin_select INT1 = PIN_B0

11
4

preprocesor

Ejemplo
archivos
:
UNlso Ver:

Nonortemi

pin_select ()

tarjeta de circuito impreso


Syntax: PCB
Elementos:

Ninguna

Propsito:
si el PCB

Thcompilador e PCB define este identificador pre-procesador. Se puede utilizar para determinar
compilarr est haciendo la compilacin.

Ejemplos:

#ifdef PCB
#device PIC16C54
#terminara si

Ejemplo
archivos:

ex_sqw.d
o

UNlso
Ver:

PCH
PCM ,

pcm
Syntax: PCM
Elementos:

Ninguna

Propsito:
si el PCM

Thcompilador e PCM define este identificador pre-procesador. Se puede utilizar para determinar
compilarr est haciendo la compilacin.

Ejemplos:

pcm #ifdef
#device PIC16C71
#terminara si

Ejemplo
archivos:

ex_sqw.d
o

UNlso
Ver:

circuito impreso

tarjeta
de
115

CCS C 10082015

PCH

11
6

preprocesor

PCH
Syntax: PCH
Elementos:
Propsito:
PCH

Ninguna
Thcompilador e PCH define este identificador pre-procesador. Se puede utilizar para determinar si el
compilarr est haciendo la compilacin.

Ejemplos:

Ejemplo
archivos:

#ifdef _ _ _ _ PCH
#device PIC18C452
#terminara si

ex_sqw.d
o

UNlso
Ver:

PCM
tarjeta
de
circuito
impreso
,

#pragma
Syntax: #Pragma cmre
Elementos:
Propsito:

Ejemplos:
Ejemplo
archivos
:
UNlso Ver:

cmreyos ninguna directiva de preprocesador vlida.


ThiDirectiva s se usa para mantener la compatibilidad entre los compiladores de C. Este
compilador aceptar esta directiva antes que cualquier otro comando pre-procesador. En ningn
caso este compilador requiere esta directiva.
PIC16C54 dispositivo #pragma

ex_cust.c

Ninguna

#prioridad
Syntax: #PRIORITY ents
Elementos:

enteros yoEs una lista de una o ms interrupciones separadas por comas.


exPuerto hacers las funciones generadas a partir de disposicin de otras unidades de compilacin en
el enlace de esta directiva.
117

CCS C 10082015

Propsito:

ThDirectiva prioridad e puede ser utilizado para establecer la prioridad de interrupcin. Los
artculos de mayor prioridad son los primeros en la lista. Si una interrupcin est activa que nunca se
interrumpe. Si dos interrupciones se producen en torno al mismo tiempo, entonces
el ms alto en esta lista ser atendida en primer lugar. Cuando la vinculacin de mltiples unidades de
compilacin tener en cuenta nicamente

11
8

preprocesor

el de la ltima unidad de compilacin se utiliza.


Ejemplos:

#priority rtcc, rb

Ejemplo
archivos
:

Nonortemi

UNlso Ver:

#INT_xxxx

#perfil
Syntax: opciones #profile
Elementos:

opciones mamy el arreglo con uno de los siguientes:


Perfiles funciones el inicio / final de las funciones y todos profileout () mensajes.

Funciones,
enviados a
parmetros
profileout
caminos
apagado

onorte

Propsito:

Profiles el inicio / final de las funciones, los parmetros


Funciones, y todos los mensajes profileout ().

ONLy el perfil profilout () mensajes.

Profiles cada rama en el cdigo.


Desactivar todos los perfiles de cdigo.

Re-permite la elaboracin de perfiles de cdigo que se


haba desactivado previamente con un #profile fuera del
sistema. Esto utilizar las ltimas opciones antes de
lesionados con el comando de apagado.

Laprogramas de RGE en el microcontrolador pueden generar gran cantidad de datos de perfil, lo


que puede dificultar la depuracin o seguir. Mediante el uso de #profile el usuario puede controlar de
forma dinmica qu puntos del programa se estn perfilados, y datos de lmite a lo que es relevante
para el usuario.

Ejemplos:

#profile
fuera
BigFunction vaco (vaco)
{
// Cdigo BigFunction va aqu.
// Desde #profile fuera fue llamado anteriormente,
// Sin perfiles suceder incluso para otra
// funciones llamadas por BigFunction ().
}
#profile en

Ejemplo
archivos
:
UNlso Ver:

ex_profile.c

#nosperfil de correo (), profileout (),BacalaoPerfil e informacin general

119

CCS C 10082015

#reserva
Syntax: #RESERVE aadirO prima
o
#RESERVA aadirO prima,direccin,aadirO prima
o
#RESERVA starta:final
Elementos:
unddress yoes una direccin de memoria RAM, start yoEs la primera direccin y enreyoEs la
ltima direccin
Propsito:

This Directiva permite a ubicaciones de memoria RAM para ser reservadas de la utilizacin por el
compilador. #RESERVE Debe aparecer despus de la #DEVICE de lo contrario, no tendr ningn
efecto. Cuando la vinculacin de varias unidades de compilacin tenga en cuenta esta directiva se
aplica al archivo objeto final.

Ejemplos:

#DEVICE PIC16C74
#RESERVE 0x60: 0x6F

Ejemplo
archivos
:

ex_cust.c

UNlso Ver:

#ORG

#ROM
Syntax: #ROM address= {lista}
#tipo ROM aadirO prima = {lista}
Elementos:

unddress yoEs una direccin de palabra ROM, list yos una lista de palabras separadas por comas

Propsito:
los datos '84

Permite la insercin de datos en el archivo .hex. En particular, esto puede ser usado para programar
EEPROM, como se muestra en el siguiente ejemplo.
Tenga en cuenta que si la direccin #ROM est dentro de la memoria del programa, la Directiva
crea un segmento de los datos, lo que resulta en un error si un #ORG es sobre la misma rea. Los
datos #ROM tambin sern contados como espacio de memoria de programa utilizados.
Thopcin de tipo e indica el tipo de cada elemento, el valor predeterminado es de 16 bits. El uso
de carbn como el tipo de trata cada elemento como 7 bits de embalaje 2 caracteres en cada
palabra PCM de 14 bits.
when vinculacin de varias unidades de compilacin tenga en cuenta esta directiva se
aplica al archivo objeto final. Algunas formas especiales de esta directiva se pueden utilizar
para la verificacin de la memoria del programa:
#direccin de ROM = suma de comprobacin
This va a poner un valor en la direccin de tal manera que toda la memoria de programa sumar a
0x1248

12
0

preprocesor

#direccin de ROM = CRC16


This va a poner un valor en la direccin que es un CRC16 de toda la memoria de programa,
excepto la direccin especificada

121

CCS C 10082015

#direccin de ROM = CRC8


This va a poner un valor en la direccin que es un CRC16 de toda la memoria de programa,
excepto la direccin especificada
Ejemplos:

Ejemplo
archivos
:

getnev #rom ( "EEPROM_ADDRESS") = {1,2,3,4,5,6,7,8}


#rom INT8 0x1000 = { "(c) CCS de 2010"}

Nonortemi

UNlso Ver:

#ORG

#separar
Syntax: #SEPARATE
Elementos:
Propsito:

Ejemplos:

Ejemplo
archivos
:
UNlso Ver:

Ninguna
Contares el compilador que el procedimiento inmediatamente despus de la Directiva debe
aplicarse por separado. Esto es til para evitar que el compilador de hacer automticamente un
INLINE procedimiento. Esto ahorrar espacio en la ROM pero no utilizar ms espacio de pila. El
compilador har que todos los procedimientos marcados independiente, piso, conforme a lo
solicitado, incluso si no hay suficiente espacio de pila para ejecutar.
#separar
swapbyte
int t;
t = *
* * A
* b =
}

(int * a, int * b) {
a;
= b;
t;

ex_cust.c

#EN LNEA

#publicar por fascculos


Syntax: #SERIALIZE(ID = xxx,siguiente= "X" |file = "archivo.txt" "| listfile = "archivo.txt","pel pronto = "text",
Iniciar sesin=
"Archivo.txt") - O
#PUBLICAR POR FASCCULOS(daTAEE = x,binario= x,next = "x" |file = "filename.txt " |listfile =
"archivo.txt",pel pronto = "text",
Iniciar sesin= "Archivo.txt")
Elementos:

id = xxx - Especificar un identificador CONST C, puede ser INT8, Int16, Int32 matriz o CHAR
Utilizar en lugar del parmetro id, al almacenar el nmero de serie en la EEPROM:

12
2

preprocesor

dataee = x - La direccin x es la direccin de inicio en la memoria EEPROM de datos.

123

CCS C 10082015

= x binarios - El nmero entero x es el nmero de bytes que se escriba a la direccin


especificada. -o- sTring = x - El nmero entero x es el nmero de bytes que se escriba a
la direccin especificada. Unicode = n - yof n es un 0, el formato de cadena Unicode es
normal. Para n> 0 n indica la cadena de
number en un descriptor USB.
Utilice slo una de las siguientes tres opciones:
file = "archivo.txt" - El archivo de x se utiliza para leer el nmero de serie inicial de, y este archivo
se actualiza por el programador ICD. Se supone que esto es un archivo de una lnea con el
nmero de serie. El programador se incrementar el nmero de serie.
listfile = "archivo.txt" - El archivo de x se utiliza para leer el nmero de serie inicial de, y
este archivo se actualiza por el programador ICD. Se supone que este es un nmero de
serie de un archivo por lnea. El programador leer la primera lnea a continuacin, eliminar
esa lnea desde el archivo.
next = "x" - El nmero de serie X se utiliza para la primera carga, entonces el archivo
hexadecimal se actualiza para incrementar x por uno.
Other parmetros opcionales:
prompt = "text" - Si se especifica el usuario se le pedir un nmero de serie de cada carga. Si se
utiliza con una de las tres opciones anteriores, entonces el valor predeterminado el usuario puede
utilizar es recogido de acuerdo con las reglas anteriores.
log = xxx - Un archivo opcionalmente se puede especificar para mantener un registro de la fecha,
hora, nombre de archivo hexadecimal y nmero de serie cada vez que la pieza est programado.
Si no se especifica id = xxx, entonces este puede ser utilizado como un simple registro de todas
las cargas del archivo hex.
Propsito:

Ejemplos:

Ayuda en la toma de nmeros de serie ms fcil de implementar cuando se trabaja con unidades
CCS ICD. Los comentarios estn insertados en el archivo hex que interpreta el software de la CIE.
// Solicitar al usuario el nmero de serie para ser colocado
// En la direccin de serialNumA
// Por defecto el nmero de serie = const 200int8int8 serialNumA = 100;
#serialize (id = serialNumA, junto = "200", prompt = "Introduzca el nmero de
serie")
// Aade registro de nmero de serie en seriallog.txt
#serialize (id = serialNumA, junto = "200", prompt = "Introduce el
nmero de serie", log = "seriallog.txt")
// Recupera el nmero de serie de serials.txt
#serialize (id = serialNumA, listfile = "serials.txt")
// Nmero de serie Lugar en la direccin EEPROM 0, reservando 1 byte
#serialize (dataee = 0, binario = 1, al lado = "45", prompt = "Poner en Nmero de
serie")
// nmero de serie Coloque el hilo en la direccin EEPROM 0, reservando 2 bytes
#serialize (dataee = 0, cadena = 2, al lado = "AB", prompt = "Poner en Nmero de
serie")

Ejemplo
archivos
:
UNlso Ver:

12
4

Nonortemi

Ninguna

preprocesor

#tarea
(El RTOS solo est incluido en los paquetes de PCW, PCWH, y software PCWHD.)
Cada tarea RTOS se especifica como una funcin que no tiene parmetros y sin retorno. Se necesita la directiva
#TASK justo antes de cada tarea RTOS para que el compilador para decir qu funciones son tareas RTOS. Una
tarea RTOS no se puede llamar directamente como una funcin puede regular.
Syntax: #TASK (opciones)
Elementos:

opciones unre separados por comas y pueden ser:


velocidad = tiempo
where el tiempo es un nmero seguido de P, PM, nosotros, o ns. Esto especifica con qu frecuencia
se ejecutar la tarea.
max= tiempo de
where el tiempo es un nmero seguido de P, PM, nosotros, o ns. Esto especifica el tiempo
presupuestado para esta tarea.
cola= bytes
Especifica el nmero de bytes a reservar para los mensajes entrantes de esta tarea. El valor por
defecto es 0.
habilitado= valor
Especifica si una tarea est activada o desactivada por rtos_run
(). True para activar, falsa para personas discapacitadas. El valor
por defecto est activada.

Propsito:

This directiva le dice al compilador que la funcin siguiente es una tarea RTOS.
Thopcin de velocidad electrnico se utiliza para especificar la frecuencia con la tarea debe
ejecutarse. Esto debe ser un mltiplo de la opcin minor_cycle si se especifica en la directiva
#Utilice RTOS.
Thopcin max e se utiliza para especificar la cantidad de tiempo de procesador una tarea utilizar
en una ejecucin de la tarea. El tiempo especificado en max deber ser igual o menor que el
tiempo especificado en la opcin de la directiva minor_cycle #Utilice RTOS antes de que el
proyecto se compila correctamente. El compilador no tiene una manera de hacer cumplir este
lmite de tiempo de procesador, por lo que un programador debe tener cuidado con la cantidad de
tiempo de procesador utiliza una tarea para su ejecucin. Esta opcin no tiene que ser
especificado.
Thopcin de correo de cola se utiliza para especificar el nmero de bytes a ser reservados
para la tarea de recibir mensajes de otras tareas o funciones. El valor por defecto es 0 cola.

Ejemplos:
UNlso Ver:

#task (tasa = 1s, max = 20 ms, la cola = 5)

#USO RTOS

hora
Syntax: TIEMPO
125

CCS C 10082015
Elementos:

12
6

Ninguna

preprocesor

Propsito:

Ejemplos:

Ejemplo
archivos
:
UNlso Ver:

This identificador pre-procesador se sustituye en tiempo de compilacin con el momento


de la compilacin en la forma: "hh: mm: ss"
printf ( "software fue compilado en");
printf (TIEMPO);

Nonortemi

Ninguna

#tipo
Syntax: #TYPE sstndar-tipo=Tammi
#TIPO defecto= rea
#TIPO unsignere
#TIPO signere
Elementos:

sDe tipo stndar yos una de las palabras clave C short, int, long o por defecto
size yos 1,8,16, o 32
unrea yos una regin de memoria definida antes de la #TYPE usando la directiva addressmod

Propsito:

Por defecto los compilador trata corta como un bit, INT de 8 bits, y hasta 16 bits. Lo tradicional
C convencin es haber INT definido como el tamao ms eficiente para el procesador objetivo. Es
por esto que es de 8 bits en el PIC . Con el fin de ayudar con la compatibilidad de cdigo directiva
#TYPE puede utilizarse para permitir que estos tipos sean cambiados. #TYPE Puede redefinir
estas palabras clave.
Tenga en cuenta que las comas son opcionales. Desde #TYPE puede hacer que algunas tamaos
inaccesible (como un int un bit en los anteriores) cuatro palabras clave que representan los cuatro
enteros siempre se puede utilizar: INT1, INT8, INT16 y INT32. Te aviso de programas de ejemplo
de CCS e incluyen archivos pueden no funcionar bien si se usa
#TIPO en su programa.
This directiva tambin se puede utilizar para cambiar el rea de memoria RAM por defecto
utilizado para el almacenamiento variable. Esto se realiza mediante la especificacin de defecto
= rea en la zona es un espacio de direcciones addressmod.
when vinculacin de varias unidades de compilacin tenga en cuenta esta directiva slo se aplica a
la unidad de compilacin actual.
ThDirectiva e #TYPE permite que las palabras clave sin firmar y FIRMADO para establecer el tipo de
datos predeterminado.

Ejemplos:

#TYPE CORTO = 8, INT = 16, LARGO = 32


por defecto = rea #TYPE
addressmod (user_ram_block, 0x100, 0x1FF);
#TYPE por defecto = user_ram_block // todas las declaraciones de variables

127

CCS C 10082015

// En esta rea estar en


// 0x100-0x1FF

12
8

preprocesor

#TYPE por defecto = // restablece la asignacin de memoria


// volver a la
normalidad
#TYPE FIRMADO
...
void main ()
{
int variable1; // Variable1 slo puede tomar valores de -128 a la 127
...
...
}

Ejemplo
archivos
:
UNlso Ver:

ex_cust.c

Ninguna

#undef
Syntax: #undef carn de identidad
Elementos:

carn de identidad yoS A Identificacin del preprocesador define a travs #DEFINE

Propsito:

Thcorreo especificada pre-procesador de ID ya no tendr sentido a la pre-procesador.

Ejemplos:

Ejemplo
archivos
:
UNlso Ver:

#if MAXSIZE <100


#undef MAXSIZE
#define MAXSIZE 100
#terminara si

Nonortemi

#DEFINIR

_UNICODE
Syntax:
Unicode (constante de cuerdas)
Elemento
s:
Propsit
o

cadena de formato Unicode

This macro se convierte una cadena ASCII estndar para una cadena de formato Unicode
mediante la insercin de un \ 000 despus de cada carcter y la eliminacin de la normal de fin
de cadena C.
129

CCS C 10082015

Por
ejemplo:
_UNICOD
E(
"ABCD")

13
0

preprocesor

Will retorno: "A \ 00B \ 000C \ 000D" (8 bytes en total con el terminador)
Desde el terminador C normal no se utiliza para estas cadenas que tiene que hacer uno de estos
procedimientos para cadenas de longitud variable:
sTring = _UNICODE (palabra clave) "\ 000
\ 000"; O
sTring = _UNICODE (palabra clave);
string_size = sizeof (_UNICODE (palabra clave));
Ejemplos:

USB_DESC_STRING_TYPE #define 3
#define USB_STRING (x) (sizeof (_UNICODE (x)) + 2),
USB_DESC_STRING_TYPE, _UNICODE (x)
#define USB_ENGLISH_STRING 4, USB_DESC_STRING_TYPE, 0x09,0x04
// Microsoft Definido por US-Ingls
const char USB_STRING_DESC []
= [USB_ENGLISH_STRING,
USB_STRING ( "CCS"),
USB_STRING ( "CCS HID DEMO")
};

Ejemplo
archivos
:

usb_desc_hid.marido

captura #use
Syntax: #Utilice CAPTURAR (opciones)
Elementos:
ICx / CCPx
which CCP / mdulo de captura de entrada para nosotros.
ENTRADA = PIN_xx
Especifica el pasador a usar. til para el dispositivo con alfileres reasignables, esto har que
el compilador para asignar automticamente al pasador perifrico.
TIMER = x
Especifica el temporizador para utilizar con la unidad de captura. Si no se especifica por defecto para
el temporizador 1 para PCM y PCH
compilarRS y temporizador 3 para PCD compilador.
TICK = x
The tick tiempo para configurar el temporizador para. Si no se especifica que se establecer en ms
rpido posible o si es la misma temporizador ya fue instalado por una corriente anterior que se
establecer en ese momento garrapata. Si se utiliza el temporizador misma como corriente anterior
y diferente seal tiempo se generar un error.
LO MS RPIDO
En lugar de utilizar TICK = x para ajustar la hora a la garrapata ms rpido posible.
131

CCS C 10082015

EL MS LENTO
En lugar de utilizar TICK = x para ajustar la hora a la garrapata ms lento posible.
CAPTURE_RISING
Especifica el valor del temporizador de punta que se captura en. Por defecto es CAPTURE_RISING.
CAPTURE_FALLING
Especifica el valor del temporizador de punta que se captura en. Por defecto es CAPTURE_RISING.
CAPTURE_BOTH
PCD solamente. Especifica el valor del temporizador de punta que se captura en. Por defecto es
CAPTURE_RISING.
PRE = x
Especifica el nmero de flancos de subida antes de que ocurra caso de captura. Las opciones
vlidas son 1, 4 y 16, por defecto a 1 si no se especifica. Las opciones 4 y 16 slo son vlidos
cuando se utiliza CAPTURE_RISING, se generar un error se utiliza con CAPTURE_FALLING o
CAPTURE_BOTH.
ISR = x
SECUENCIA ID =
Asocia un identificador de flujo con el mdulo de captura. El identificador puede ser utilizado en
funciones como get_capture_time ().
DEFINE = id
Crea un identificador de llamada definir que especifica el nmero de capturas por segundo. Definir
nombre por defecto si no se especifica es CAPTURES_PER_SECOND. Definir nombre debe
comenzar con una letra ASCII 'A' a la 'Z', una carta ASCII 'a' a la 'z' o un guin ASCII ( "_").
Propsito:

Ejemplos:
Ejemplo
archivos
:
Ver tambin:

This directiva indica al compilador para configurar una captura de entrada en el pin especificado
mediante la configuracin especificada. La directiva #Utilice RETRASO debe aparecer antes de
esta directiva se puede utilizar. Esta directiva permite el uso de funciones incorporadas tales como
get_capture_time () y get_capture_event ().
#USO DE CAPTURA (INPUT = PIN_C2, CAPTURE_RISING, TIMER = 1, el ms rpido)
Nonordeste.

get_capture_time (),get_capture_event ()

retardo #use
Syntax: RETRASO #Utilice (opciones))
Elementos:

Opciones pueden ser cualquiera de los siguientes separados por comas:


dobloquear = velocidad Speed es una constante 1-100.000.000 (1 Hz a 100 MHz).
ThiNmero s lata contiene comas. Este nmero tambin es compatible con las siguientes
denominaciones: M, MHZ, K, KHZ. Esto especifica el reloj de la CPU funciona a. Dependiendo de
la PIC es 2 o 4 veces la tasa de instrucciones. No se necesita esta directiva si = se utiliza el
siguiente tipo de velocidad y no hay multiplicacin de frecuencia o divisin.
type = velocidad tipo define qu tipo de reloj que est utilizando, y los siguientes valores son
vlidos: oscilador, osc (igual que el oscilador), cristal, xtal (igual que el cristal), interno, int (igual que
la interna) o RC. El compilador crear automticamente los bits de configuracin del oscilador en

13
2

preprocesor

base a su tipo definido. Si ha especificado interna, el compilador tambin en forma automtica el


oscilador interno a la definida

133

CCS C 10082015

velocidad. fusibles de configuracin se modifican cuando se utiliza esta opcin. La velocidad es la


frecuencia de entrada.
restart_wdt Will reiniciar el temporizador de vigilancia en cada delay_us () y Delay_ms () utiliza.
docierre patronal when se utiliza con los tipos internos o oscilador esto permite que el pasador
Clockout a la salida del reloj.
comienzo rpido some virutas permiten que el chip para iniciar la ejecucin utilizando un reloj
interno hasta que el reloj principal es estable.
bloquear some chips pueden prevenir el tipo de oscilador de ser cambiado en tiempo de ejecucin
por el software.
USB o USB_FULL para dispositivos con un perifrico USB incorporado. Cuando se utiliza con el
type = velocidad opCION el compilador va a establecer los bits de configuracin correctos para
el perifrico USB para funcionar a Full-Speed.
USB_LOW para dispositivos con un perifrico USB incorporado. Cuando se utiliza con el type =
velocidad option el compilador establecer los bits de configuracin correctos para el perifrico
USB para funcionar a baja velocidad.
PLL_WAIT para dispositivos con un PLL y un indicador de estado del PLL listo para probar.
Cuando se especifica un reloj PLL que har que el compilador para sondear la Bandera Listo
PLL listo y slo continuar la ejecucin del programa cuando el indicador indica que el PLL est
listo.
UNCT o ACT = Tipo para el dispositivo con Active Reloj Tuning, tipo puede ser USB o SOSC. Si
slo se utiliza el tipo de ACT tome por defecto USB. ACT = USB hace que el compilador para
permitir la sintonizacin de reloj activa y para sintonizar el oscilador interno con el reloj USB. ACT =
SOSC hace que el compilador para permitir la puesta a punto del reloj activa y para sintonizar el
oscilador interno al reloj secundario a 32.768 kHz. ACT slo se puede utilizar cuando el sistema
est configurado para ejecutarse desde el oscilador interno.

UNlso Ver:

Delay_ms(),delay_us()

dynamic_memory #use
Syntax: DYNAMIC_MEMORY #Utilice
Elementos:

Ninguna

Propsito:

This directiva pre-procesador indica al compilador para crear el objeto


_DYNAMIC_HEAD.
_DYNAMIC_HEAD es la ubicacin en la que se asigna el primer espacio
libre.

Ejemplos:

Ejemplo
archivos
13
4

#Utilice DYNAMIC_MEMORY
void main () {
}

preprocesor

ex_malloc
UNlso Ver:

.do
Ninguna

135

CCS C 10082015

#use fast_io
Syntax: #Utilice FAST_IO (correosrt)
Elementos:
Propsito:

Ejemplos:
Ejemplo
archivos
:

Puerto yos A, B, C, D, E, F, G, H, J o ALL


Afecta la forma en que el compilador generar cdigo para obtener instrucciones de entrada y
salida que siguen. Esta directiva entra en vigor hasta que se encuentre otra directiva #use xxxx_IO.
El mtodo rpido de hacer E / S har que el compilador para realizar E / S sin necesidad de
programacin del registro de direccin. funcionamiento por defecto del compilador es lo opuesto a
este comando, la direccin de E / S se establecer / limpiado en cada operacin de E / S. El usuario
debe garantizar el registro de direccin est configurado correctamente a travs de set_tris_X ().
Cuando la vinculacin de varias unidades de compilacin tenga en cuenta esta directiva slo se
aplica a la unidad de compilacin actual.
#use fast_io (A)

ex_cust.c

UNlso Ver:

#USO FIXED_IO,#USO STANDARD_IO,SEt_tris_X () ,GenePropsito ral de E / S

#use fixed_io
Syntax: #Utilice FIXED_IO (correosrt_outputs=alfiler,alfiler?)
Elementos:
archivo.

Puerto yos A-G, alfiler yoEs una de las constantes de pasador definidas en los dispositivos .h

Propsito:
This directiva afecta a la forma en que el compilador generar cdigo para obtener instrucciones de
entrada y salida que siguen.
This directiva entra en vigor hasta que se encuentre otra directiva #Utilice XXX_IO. El mtodo fijo
de hacer E / S har que el compilador generar cdigo para hacer un pin de E / S sea de entrada o
de salida cada vez que se utiliza. Los pasadores se programan de acuerdo a la informacin de esta
directiva (no las operaciones realmente lleva a cabo). Esto ahorra un byte de memoria RAM
utilizada en E / S estndar. Cuando la vinculacin de varias unidades de compilacin tenga en
cuenta esta directiva slo se aplica a la unidad de compilacin actual.
Ejemplos:
Ejemplo
archivos
:

#Utilice fixed_io (a_outputs = PIN_A2, PIN_A3)

Nonortemi

UNlso Ver:

I2C #use
13
6

#USO FAST_IO,#USO STANDARD_IO,GenePropsito ral de E / S

preprocesor

Syntax: I2C #Utilice (opciones)

137

CCS C 10082015

Elementos:

Opciones unre separados por comas y pueden ser:


MAMSTER Establece el modo maestro
METROULTI_MASTER
ESCLAVO

Ajuste el modo de multi_master

Fije el modo esclavo

SCL = pin

Especifica el pin SCL (pin es una direccin de bit)

SDA = pin

Especifica el pin SDA

ANUNCIOVestido = nn

Especifica la direccin de modo esclavo

AYUNAR

Utilizar la especificacin I2C rpido.

RPIDO = nnnnnn

Define la velocidad en Hz nnnnnn

LENTO

Utilizar la especificacin I2C lenta

RESTART_WDT

Reiniciar el WDT mientras espera en I2C_READ

FORCE_HW

Utilice las funciones de hardware I2C.

FORCE_SW

Use funciones de software I2C.

NOFLOAT_HIGH
menor a mayor
SMBUS

Bus utilizado no es bus I2C, pero muy similar

SECUENCIA ID =

No permite que floten las seales de alto, las seales son expulsados de

NO_STRETCH

Asocia un identificador de flujo con este puerto I2C. El identificador


puede utilizarse entonces en funciones como i2c_read o i2c_write.
No permita que el reloj streaching

MAMSK = nn

Establecer una mscara de direccin para las partes que lo apoyan

I2C1

En lugar de SCL y SDA = = esto establece los pasadores al primer mdulo

I2C2
mdulo

En lugar de SCL y SDA = = esto establece los pasadores hasta el segundo

NOINIT

no se realiza ninguna inicializacin del perifrico I2C. Utilice I2C_INIT


() para inicializar perifrica en tiempo de ejecucin.

ONLy algunos chips permiten lo siguiente:


Sin DATA_HOLD ACK se enva hasta I2C_READ es llamado por los bytes de datos
(slo esclavo) ADDRESS_HOLD Sin ACK se enva hasta I2C_read se llama para el byte
de direccin (slo esclavo) SDA_HOLD
Min de 300 ns HOLDTIME en una SDA SCL
pasa a nivel bajo
Propsito:

. CCS ofrece apoyo a la I2CTM basada en hardware y un dispositivo I2CTM maestra basada en
software (Para obtener ms informacin sobre el mdulo I2C basada en hardware, consulte la
hoja de datos para el dispositivo de destino; no todas las fotografas apoyan I2CTM.
Thbiblioteca e I2C contiene funciones para implementar un bus I2C. El #Utilice I2C permanece en
efecto para las funciones I2C_START, I2C_STOP, I2C_READ, I2C_WRITE y I2C_POLL hasta que
se encuentre otra I2C USO. funciones de software se generan a menos que se especifique el
FORCE_HW. El modo esclavo slo se debe utilizar con la incorporada en el SSP. Las funciones
creadas con esta directiva se exportan al utilizar varias unidades de compilacin. Para acceder a la
funcin correcta utilizar el identificador de flujo.

Ejemplos:

I2C #use (maestro, SDA = PIN_B0, scl = PIN_B1)


I2C #use (esclavo, SDA = PIN_C4, scl =
direccin de PIN_C3 =
0xa0, FORCE_HW)
I2C #use (maestro, scl = PIN_B0, SDA = PIN_B1, rpido = 450000)
// Establece la velocidad objetivo de 450 KBSP

13
8

preprocesor

Ejemplo
archivos
:

ex_extee.c wyo 16c74.marido

UNlso Ver:

i2c_poll,i2c_speed,i2c_start,i2c_sparte
superior,i2c_slaveaddr,i2c_isr_state,i2c_writo,i2c_leer,I2C general

#Utilice perfil ()
Syntax: perfil #use (opciones)
Elementos:

opciones mamy el arreglo con cualquiera de los siguientes, separados por comas:
CIE por defecto - configura el cdigo de perfiles para utilizar la conexin CIE.
Opcional. Si se especifica, el perfilador de cdigo
CRONOM1

en tiempo de ejecucin en el
microcontroller utilizar el Timer1 perifrica como
timESTAMP para todos los eventos del perfil. Si no se
especifica la herramienta de cdigo perfilador utilizar el
reloj de la PC, que puede no ser
preciso para procesos
rpidos.
BAUDIO = x

Propsito:

Ejemplos:
Ejemplo
archivos
:
UNlso Ver:

Opcional. Si se especifica, se utilizar otra velocidad de


transferencia entre el microcontrolador y la herramienta de cdigo
generador de perfiles. Esto puede ser necesario en microcontroladores
lentos para intentar utilizar una velocidad de transmisin menor.

Tell el compilador para agregar el cdigo de perfil del tiempo de ejecucin en el


microcontrolador y configurar el enlace y el reloj.

#profile (ICD, CRONOM1, baudios = 9600)


ex_profile.c

#pERFIL (),profileout (),Cdigo de Generales Actualizaciones

PWM #use ()
Syntax: #use PWM (opciones)
Elementos:

opciones unre separados por comas y pueden ser:


139

CCS C 10082015

PWMx o CCPx Selecciona el CCP de usar, siendo x el nmero del mdulo de usar.
OUtput = PIN_xx
Selecciona el perno PWM de usar, pin debe ser uno de los pasadores de
CCP. Si el dispositivo tiene pines reasignables compilador asignar al
pin especificado mdulo CCP especificado. Si no se especifica mdulo

14
0

preprocesor

TIMER = x
FRECUENCIA = x
debe ser utilizado si

PERIODO = x

BITS = x

SERVICIO = x
PWM_ON
PWM_OFF
SECUENCIA ID =

Propsito:

Ejemplos:

primero mdulo disponible.


Selecciona temporizador para utilizar con el mdulo PWM, por defecto si
Establece el perodo de PWM basa apagado valor especificado, no
PERIODO ya se ha especificado. Si la frecuencia no se puede lograr
exactamente compilador generar un mensaje que especifica la
frecuencia exacta y
Educacin fsicaRIOD de PWM. Si no se especifica ninguna frecuencia o
perodo, el
Educacin fsicaRIOD por defecto es mxima duracin posible, con
la mxima resolucin y el compilador generar un mensaje
especificando la frecuencia y
Establece el perodo de PWM, no debe ser utilizado si ya se ha
especificado FRECUENCIA. Si no se puede lograr perodo
exactamente compilador generar un mensaje indicando el perodo
exacta y la frecuencia de PWM. Si no se especifica ninguno PERODO
o la frecuencia, el perodo mximo por defecto
posiblperodo e con la mxima resolucin y compilador generar un
mensaje que especifica la frecuencia y el perodo de PWM, o si se
utiliza mismo
temporizador corriente que el anterior en lugar de establecer al mximo
Establece la resolucin del ciclo, el deber, si no se especifica el
periodo o frecuencia se ajustar el tiempo para cumplir conjunto
resolucin y generar un mensaje especificando la frecuencia y el
deber de PWM. Si el periodo o
la frecuencia no especifica establecer periodo de mxima posible para
especificada
la resolucin y el compilador generar un mensaje especificando la
frecuencia y el perodo de PWM, a menos que use mismo
temporizador que el anterior, entonces se genera un error si la
Selecciona el porcentaje deber de PWM, por defecto si no se
Inicializar el PWM en el estado activado, por defecto estado si no se
especifica pwm_on o pwm_off.
Inicializar el PWM en el estado OFF.
Asocia un identificador de flujo con la seal PWM. El identificador
puede ser utilizado en funciones como pwm_set_duty_percent ().

This directiva le dice al compilador de configurar un PWM en el pin especificado utilizando la


frecuencia, perodo, ciclo de trabajo especificado y resolucin. La directiva #Utilice RETRASO debe
aparecer antes de esta directiva se puede utilizar. Esta directiva permite el uso de funciones
incorporadas tales como set_pwm_duty_percent (), set_pwm_frequency (), set_pwm_period (),
pwm_on () y (pwm_off).

norteuno

UNlso Ver:

#use RS232
Syntax: #Utilice RS232 (opciones)
Elementos:

Opciones unre separados por comas y pueden ser:


SECUENCIA ID = Asocia un identificador de flujo con este puerto RS232. El
identificador puede utilizarse entonces en funciones
como fputc.
141

CCS C 10082015

BAUDIO = x
XMIT = pin

Velocidad de transmisin ajustada a x


Configurar el pin de transmisin

VN = pin

Establecer recibir pin

FORCE_SW

Will generar rutinas de software de serie de E / S incluso cuando se


especifican los pines UART.

BRGH1OK
Permitir velocidades de transmisin malos en los chips que han
baudios los problemas del tipo.
ENABLE = pin
Thcorreo especificada pasador ser alta durante la transmisin.
Esto puede ser utilizado para permitir 485 de transmisin.
DEBUGGER

RESTART_WDT
personaje.
INVERTIR

Indica que esta corriente se utiliza para enviar / recibir datos a


travs de una unidad de CCS ICD. El pasador por defecto es B3,
el uso XMIT = y VN = a
change el pasador utilizado. Ambos deben ser el mismo pin.
Will causa GETC () para borrar el WDT, ya que espera para un

PARIDAD = X

Invertir la polaridad de los pasadores de serie (normalmente no es


necesario cuando convertidor de nivel, tal como el MAX232). No se
podrn utilizar con el interior
UART.
where x es N, E, o O.

BITS = X

where x es 5-9 (5-7 no pueden utilizarse con el LIC).

FLOAT_HIGH
colector abierto.

ThLnea E no es excitada alta. Esto se utiliza para salidas de

ERRORES
la variable
SAMPLE_EARLY

RETORNO = pin

METROULTI_MASTER

LONG_DATA

DISABLE_INTS

STOP = X
funciona tanto

Bit 6 en RS232_ERRORS se establece si el pasador no es alta


al final del tiempo de bit.
Se utiliza para que el compilador para mantener recibir errores en
RS232_ERRORS y para restablecer los errores cuando se
A getc () normalmente datos muestras en el medio de un tiempo de
bit. Esta opcin hace que la muestra a estar en el inicio de un
tiempo de bit. No se podrn utilizar con la UART.
Para FLOAT_HIGH y MULTI_MASTER este es el pin se utiliza
para leer la seal de vuelta. El valor predeterminado para
FLOAT_HIGH es el pin XMIT y para MULTI_MASTER pasador del
RCV.
Utiliza el pasador de retorno para determinar si otro maestro
en el bus est transmitiendo al mismo tiempo. Si la colisin es
detectada 6 bits se encuentra en RS232_ERRORS y todos los
futuros putc de se ignoran hasta que se borre el bit 6. La seal se
comprueba al principio y al final de un tiempo de bit.
Mamy no se pueden utilizar con el UART.
Hacers getc () devolver un Int16 y putc aceptar una Int16. Esto es
para los formatos de datos de 9 bits.
Will causa interrumpe estar deshabilitado cuando las rutinas
obtienen o un personaje. Esto evita la distorsin de caracteres
para software implementado I / O y evita la interaccin entre I / O
en interrupcin
encargarse deRS y el programa principal al utilizar la UART.
To establecer el nmero de bits de parada (por defecto es 1). Esto
UART y
no-UART puertos.

121

preprocesor

TIMEOUT = X

SYNC_SLAVE

SYNC_MASTER

To Ajustar el tiempo getc () espera a que un byte en milisegundos.


Si ningn personaje viene en este momento dentro de los
RS232_ERRORS se establece en 0, as como la forma valor de
retorno getc (). Esto funciona tanto para los puertos no UART
UART y.
Hacers la lnea RS232 esclavo sincrnica, por lo que el pasador de
recibir un reloj, y el pin de datos los datos de entrada / salida.

UART1

Hacers la lnea RS232 un maestro sncrono, haciendo que el


pasador de recibir un reloj, y el pin de datos los datos de entrada
/ salida.
Hacers de la lnea RS232 de un modo maestro sncrona en modo
continuo recibir. El pasador de recepcin se configura como un
reloj, y los datos
Pin se establece como los datos de entrada / salida.
Establece el XMIT = y = VN a los primeros chips hardware UART.

UART2

Establece el XMIT = y = VN a los chips segunda hardware UART.

SYNC_MATER_CONT

NOINIT

no se realiza ninguna inicializacin del perifrico UART. til para


el control dinmico de la velocidad de transmisin UART o
inicializar el perifrico
manuallY en un momento posterior en el tiempo de ejecucin del
programa. Si esta opcin est
usadoY, a continuacin setup_uart () debe ser utilizado para
CIE
Indica que esta corriente se utiliza para enviar / recibir datos a
travs de una unidad de CCS ICD. El pasador trasmit defecto es
ICSPDAT / PGD pasador del PIC y el valor predeterminado es
recibir pasador ICSPCLK / PGC pin del PIC. Uso XMIT = y = VN
UART3
Establece el XMIT = y = VN al tercer UART hardware del dispositivo.
UART4
Establece el XMIT = = VN y al cuarto UART hardware del dispositivo.
CIE
Indica que esta corriente utiliza la CIE en un pase especial a
travs del modo de enviar / recibir datos en serie a / desde el PC.
La lnea de reloj es el ICSP
del PIC reciben pines, por lo general B6 pasador, y la lnea de datos
MAMX_ERROR = x
Especifica el porcentaje de error mximo el compilador puede
ajustar la velocidad de transmisin en baudios de la RS232
especificado antes de que se genere un error.
Opciones de la memoria intermedia serie:
RECEIVE_BUFFER = x
Tamao en bytes del buffer de recepcin UART circular, por
defecto si no se especifica es cero. Utiliza una interrupcin para
recibir datos, soporta dosis diaria recomendada de interrupcin
TRANSMIT_BUFFER = x
Tamao en bytes del buffer de transmisin circular
UART, por defecto si no se especifica es cero.
TXISR
Si TRANSMIT_BUFFER es mayor que cero especifica el uso de
TBE
enterrumpir para la transmisin de datos. El valor
predeterminado es NOTXISR Si no se especifica TXISR o
NOTXISR
Si TRANSMIT_BUFFER es mayor que cero Especifica que no se
utilice
TSER interrumpir para transmitir datos. El valor predeterminado es
Opciones de control de flujo:
RTS = PIN_xx
Pin a utilizar para el control de flujo RTS. Cuando usas
FLOW_CONTROL_MODE este perno es accionado para el nivel
activo cuando est listo para recibir ms datos. En
SIMPLEX_MODE el pasador es accionado para el nivel activo
cuando tiene datos que transmitir. FLOW_CONTROL_MODE slo
se puede utilizar cuando se utiliza RECEIVE_BUFFER
RTS_LEVEL = x
Especifica el nivel activo de la clavija de RTS, ALTA est activo y
de alto
CTS = PIN_xx
Pin a utilizar para el control de flujo CTS. En tanto
FLOW_CONTROL_MODE

122

preprocesor

CTS_LEVEL = x
alto
FLOW_CONTROL_MODE

SIMPLEX_MODE

Propsito:

daejrcito de reserva. Si el pasador est en el nivel activo y hay


datos que enviar enviar siguiente byte de datos.
Especifica el nivel activo de la clavija CTS, ALTA est activo y de
Especifica cmo se utiliza el pin RTS. Para
FLOW_CONTROL_MODE el pin RTS es conducido al nivel activo
cuando est listo para recibir datos. Por defecto para
FLOW_CONTROL_MODE cuando se especifica ni
FLOW_CONTROL_MODE o SIMPLEX_MODE. Si
Especifica cmo se utiliza el pin RTS. Para SIMPLEX_MODE el pin
RTS es accionado para el nivel activo cuando tiene datos que
enviar. Por defecto para FLOW_CONTROL_MODE cuando
ninguno
FLOW_CONTROL_MODE o SIMPLEX_MODE se especifica. Si

This directiva le dice al compilador la velocidad de transmisin y los pernos utilizados para la serie
de E / S. Esta directiva entra en vigor hasta que se encuentre otra directiva RS232. La directiva
#Utilice RETRASO debe aparecer antes de esta directiva se puede utilizar. Esta directiva permite el
uso de funciones incorporadas tales como GETC, putc, y PRINTF. Las funciones creadas con esta
directiva se exportan al utilizar varias unidades de compilacin. Para acceder a la funcin correcta
utilizar el identificador de flujo.
when usando partes con una funcin de SCI y los pasadores de SCI se especifican, se utilizar el
SCI. Si una velocidad de transmisin no puede lograrse a menos de 3% del valor deseado utilizando
el tipo de reloj actual, se generar un error. La definicin de los RS232_ERRORS es el siguiente:
Sin UART:
El bit 7 es el 9 de bit en modo de datos de 9 bits (get y put).
El bit 6 de referencia a uno indica una opcin de venta fracasado en modo de alta flotacin.
Ingenioh una UART:
Slo se utiliza por get:
Copia del registro RCSTA excepto:
Bit 0 se utiliza para indicar un error de paridad.
Advertencia:
The PIC UART se apagar en caso de desbordamiento (3 caracteres recibidos por el hardware
con una llamada GETC ()). La opcin "ERRORES" impide el cierre mediante la deteccin de la
condicin y el restablecimiento de la UART.

Ejemplos:
Ejemplo
archivos
:
UNlso Ver:

RS232 #Utilice (baudios = 9600, XMIT = PIN_A2, VN = PIN_A3)

ex_cust.c

getc (), Putc (), printf (),SEtup_uart (),RS2332 visin general de E / S

RTOS #Utilice
(El RTOS solo est incluido en los paquetes de PCW y PCWH.)
ThSistema electrnico de CCS en tiempo real de funcionamiento (RTOS) permite a un controlador microcontrolador
PIC para ejecutar tareas programadas regularmente sin necesidad de interrupciones. Esto se logra mediante una
funcin (RTOS_RUN ()) que acta como un despachador. Cuando se programa una tarea para ejecutar la funcin
123

CCS C 10082015

de despacho da el control del procesador a esa tarea. Cuando se realiza la tarea

124

preprocesor

ejecuting o no necesita el procesador ms, el control del procesador se devuelve a la funcin de despacho que
luego le dar el control del procesador a la siguiente tarea que est programado para ejecutar en el momento
apropiado. Este proceso se llama cooperativo multitarea.
Syntax: #Utilice RTOS (opciones)
Elementos:

Propsito:

opciones estn separados por comas y pueden ser:


temporizador = X donde X es 0-4 especificando el temporizador utilizado por el RTOS.
minor_cycle = tiempo
where el tiempo es un nmero seguido de P, PM,
nosotros, ns. Este es el
longest Tiempo de cualquier tarea se ejecutar. la tasa de
ejecucin de cada tarea debe
segundoe un mltiplo de este tiempo. El compilador puede
calcular esto si no se especifica.
sSTADSTICAS
PrincipalTain min, max, y el tiempo total utilizado por cada
tarea.
This directiva le dice al compilador qu temporizador en el PIC a utilizar para la vigilancia y el
momento de otorgar el control a una tarea. Los cambios en prescaler del temporizador
especificado afectar la velocidad a la que se ejecutan las tareas.
This directiva tambin se puede utilizar para especificar el tiempo ms largo que una tarea volver a
tomar para ejecutar con la opcin minor_cycle. Esto simplemente obliga a todas las tasas de
ejecucin de tareas a ser un mltiplo de la minor_cycle antes de que el proyecto se compila
correctamente. Si no se especifica el esta opcin el compilador utilizar un valor minor_cycle que es
el factor ms pequea posible de las tasas de ejecucin de las tareas RTOS.
Si se especifica la opcin de estadsticas a continuacin, el compilador no perder de vista el
tiempo mnimo de procesador tomada por una ejecucin de cada tarea, el tiempo mximo de
procesador tomada por una ejecucin de cada tarea, y el tiempo total del procesador utilizado por
cada tarea.
when vincular mltiples unidades de compilacin, esta directiva debe aparecer
exactamente la misma en cada unidad de compilacin.

Ejemplos:

RTOS #Utilice (temporizador = 0, minor_cycle = 20 ms)

UNlso Ver:

#TPEDIR

#use spi
Syntax: #Utilice SPI (opciones)
Elementos:

Opciones unre separados por comas y pueden ser:


MAMSTER definir el dispositivo como el maestro. Esclavo (por
defecto)
Permite configurar el dispositivo como
esclavo.
BAUDIO = n
Ejrcito de reservarAccede los bits por segundo,
por defecto es tan rpido como sea posible.
CLOCK_HIGH = n
Hora del reloj en nosotros (no es necesario si se
utiliza BAUDIO =). (Por defecto = 0)
CLOCK_LOW = n
Low de tiempo del reloj en nosotros (no es necesario
si se utiliza BAUDIO =).
(Por
defecto =
125

CCS C 10082015
DI = pin
entrantes. DO = pin
los datos salientes. CLK = pin
reloj.
mesDE = n
bus SPI.
ENABLE = pin
transferencia de datos.
CARGA = pin
datos se transfieren.

126

0)
Oppin cional para los datos
Oppin cional para
pin de
ThModo e para poner el
Oppin cional que se activa durante la
Oppin cional al ser pulsado activo despus de los

preprocesor

DIAGNSTICO = pin
Oppin cional a la alta set cuando se muestrea datos.
SAMPLE_RISE
Muestra en el flanco ascendente.
SAMPLE_FALL
Muestra el flanco de bajada (por defecto).
BITS = n
Mamx nmero de bits en una transferencia. (Por defecto = 32)
SAMPLE_COUNT = n
Nmero de muestras a tomar (usos voto mayoritario). (Por
defecto = 1
LOAD_ACTIVE = n
estado activo de pasador de carga (0, 1).
ENABLE_ACTIVE = n
estado activo para ACTIVAR pasador (0, 1).
(Por defecto = 0) INACTIVO = n
estado inactivo por
pin CLK (0, 1). (Por defecto = 0)
ENABLE_DELAY = n
Time en nosotros para retrasar tras la liberacin se activa. (Por
defecto = 0)
DATA_HOLD = n
Time entre el cambio de datos y cambio del reloj
LSB_FIRST
LSB se enva primero.
METROSB_FIRST
METROSB se enva primero. (defecto)
SECUENCIA ID =
Especificar un nombre corriente de este protocolo.
SPI1
Utilice los pasadores de hardware para SPI puerto 1
SPI2
Utilice los pasadores de hardware para SPI Puerto 2
FORCE_HW
Utilizar el hardware pic SPI.
NOINIT
No inicializar el hardware SPI puerto
Propsito:

Thbiblioteca e SPI contiene funciones para implementar un bus SPI. Despus de ajustar todos los
parmetros adecuados en #use SPI, la funcin spi_xfer () se puede utilizar tanto para transferir y
recibir datos en el bus SPI.
ThOpciones de correo SPI1 y SPI2 utilizarn el hardware SPI a bordo del PIC. Los pasadores ms
comunes presentes en el hardware SPI son: DI, DO, y CLK. Estos pines no tienen que ser
asignado valores a travs de las opciones; el compilador asignar automticamente los valores
especficos de hardware para estos pines. Consulte la hoja de datos del PIC en cuanto a donde los
pasadores de hardware SPI son. Si no se utiliza SPI hardware, entonces se usar software SPI.
SPI software es mucho ms lento que el hardware SPI, pero el software de SPI puede utilizar
cualquier patilla para transferir y recibir datos que no sean slo los pasadores relacionadas con el
hardware pines SPI del PIC.
ThMODO opcin de correo es ms o menos una forma rpida para especificar cmo la corriente se
va a muestrear datos. Mode = 0 establece IDLE = 0 y SAMPLE_RISE. Mode = 1 conjuntos de
ralent = 0 y SAMPLE_FALL. Mode = 2 juegos de ralent = 1 y SAMPLE_FALL. Mode = 3 series de
ralent = 1 y SAMPLE_RISE. Slo estos hay
4 modos.
SPI no puede utilizar los mismos pines para DI y DO. Si es necesario, especifique dos corrientes:
una para enviar datos y otro para recibir datos.
Thpasadores correos deben especificarse con DI, DO, CLK o Spix, todas las dems opciones
estn predeterminadas como se ha indicado anteriormente.

Ejemplos:

#use spi (DI = PIN_B1, DO = PIN_B0, CLK = PIN_B2, ENABLE = PIN_B4, BITS = 16)
// Utiliza el software de SPI
#use spi (FORCE_HW, BITS = 16, corriente = SPI_STREAM)
// Utiliza SPI hardware y da esta corriente el nombre SPI_STREAM

Ejemplo
archivos
:
UNlso Ver:

Nonortemi

spi_xfer ()

127

CCS C 10082015

#use standard_io
Syntax: #Utilice STANDARD_IO (correosrt)

128

preprocesor

Elementos:

Puerto yos A, B, C, D, E, F, G, H, J o ALL

Propsito:
This directiva afecta a la forma en que el compilador generar cdigo para obtener instrucciones de
entrada y salida que siguen.
This directiva entra en vigor hasta que se encuentre otra directiva #Utilice XXX_IO. El mtodo
estndar de hacer E / S har que el compilador generar cdigo para hacer un pin de E / S sea de
entrada o de salida cada vez que se utiliza. En los procesadores de 5X esto requiere un byte de
RAM para cada puerto establecido la norma
I / O.
Standard_io es el mtodo de E / S por defecto para todos los puertos.
when vinculacin de varias unidades de compilacin tenga en cuenta esta directiva slo se aplica a
la unidad de compilacin actual.
Ejemplos:
Ejemplo
archivos
:
UNlso Ver:

standard_io #use (A)

ex_cust.c

#USO FAST_IO,#USO FIXED_IO,GenePropsito ral de E / S

temporizador #use
Syntax: #Utilice TIMER (opciones)
Elementos: Temporizador = x
Ajusta el temporizador para su uso como el temporizador de la garrapata. x es un contador de tiempo
vlida de que el PIC tiene. El valor por defecto es 1 para temporizador
1.
TICK = xx
Establece el tiempo deseado para 1 garrapata. xx se puede utilizar con ns (nanosegundos),
nosotros (microsegundos), ms (milisegundos), o S (segundos). Si el tiempo de garrapata deseado
no se puede conseguir que se ajuste el tiempo de mxima tiempo alcanzables y generar un aviso
especificando el tiempo exacto de la garrapata. El valor por defecto es 1us.
BITS = x
Establece el tamao de la variable utilizada por los get_ticks () y set_ticks () funciones para el
retorno y ajuste de la velocidad de ticker. x puede ser 8 para 8 bits y 16 bits de hace 16 o 32 para
32bits. El valor por defecto es 32 para 32 bits.

ISR
Usos de interrupcin del temporizador para incrementar los bits superiores del contador de
tiempo de la garrapata. Este modo requiere la interrupcin del mundial ser activada en el
programa principal.
NOISR
Thfuncin e get_ticks () incrementa los bits superiores del contador de tiempo de la garrapata. Esto
requiere que el get_ticks ()
la funcin se llama con ms frecuencia que la tasa de desbordamiento del temporizador. NOISR es el
modo por defecto de funcionamiento.
129

CCS C 10082015

SECUENCIA ID =
Asocia un identificador de flujo con el temporizador de la garrapata. El identificador puede
ser utilizado en funciones como get_ticks ().
DEFINE = id

130

preprocesor

Crea un identificador de llamada definir que especifica el nmero de garrapatas que ocurrirn en un
segundo. Definir nombre por defecto si no se especifica es TICKS_PER_SECOND. Definir nombre
debe comenzar con una letra ASCII
'A 'a la' Z ', una carta ASCII' a 'a la' z 'o un guin ASCII ( "_").
Mostrador o contador = x
Permite configurar el temporizador especificado como un contador en lugar de temporizador. x
especifica el prescallar al contador de programa de instalacin con, por defecto es1 si no se
especifica especifica x. Los get_ticks de funcin () devolvern el recuento actual y las set_ticks de
funcin () se puede utilizar para configurar la cuenta a un valor de partida especfico o para borrar el
contador.
Propsito:

Ejemplos:

This Directiva crea un timer tick usando uno de los temporizadores del PIC. El temporizador de la
garrapata se inicializa a cero al inicio del programa. Esta directiva tambin crea el
TICKS_PER_SECOND define como un nmero de coma flotante, que especifica que el nmero de
garrapatas que ocurrirn en un segundo.
#Utilice TIMER (TEMPORIZADOR = 1, TICK = 1ms, BITS = 16, NOISR)
tick_difference sin firmar Int16 (corriente Int16 sin signo, sin signo Int16
anterior) {
retorno (actual - anterior);
}
void main (void) {
current_tick
Int16
sin
firmar,
previous_tick;
current_tick
=
=
previous_tick get_ticks (); while (true) {
current_tick = get_ticks ();
si (tick_difference (current_tick, previous_tick)> 1000) {
output_toggle (PIN_B0);
previous_tick = current_tick;
}
}
}

Ejemplo
archivos
:
UNlso Ver:

Nonortemi

get_ticks (),conjunto_garrapatas ()

touchpad #use
Syntax: almohadilla tctil #Utilice (opciones)
Elementos:

GAMA = x
Establece el rango de corriente de carga del oscilador / descarga. Si x es L, la corriente es
nominalmente de 0,1 microamperios. Si x es
METRO, La corriente es nominalmente 1,2 microamperios. Si x es H, la corriente es nominalmente 18
microamperios. El valor por defecto es
H (18 microamperios).
UMBRAL = x
131

CCS C 10082015

x es un nmero entre 1-100 y representa el porcentaje de reduccin en la frecuencia nominal que


va a generar una pulsacin de tecla vlida en el software. El valor por defecto es de 6%.
SCANTIME = xxMS
incgnitax es el nmero de milisegundos utilizados por el microprocesador para explorar en busca de
una pulsacin de tecla. Si la utilizacin de

132

preprocesor

multiple almohadillas tctiles, cada pad utilizarn milisegundos xx para buscar una pulsacin de tecla.
El valor predeterminado es 32 ms.
PIN = Char
Si presione una tecla vlida se determina el "PIN", el programa devolver el carcter "char" en el
touchpad_getc funcin (). (Ejemplo: PIN_B0 = 'A')
SOURCETIME = xxus (Slo CTMU)
incgnitax es thenumber de microsegundos cada pin se muestrea por ADC durante cada
periodo de tiempo de exploracin. El valor predeterminado es 10 us.
Propsito:

This directiva le dir al compilador para inicializar y activar el mdulo de deteccin capacitiva
(CSM) o de carga Unidad de Medicin de Tiempo (CTMU) en el microcontrolador. El compilador
requiere el uso de los mdulos TIMER0 y Timer1 para mdulos ADC CSM y Timer1 para CTMU, y
las interrupciones globales todava se debe activar en el programa principal para que el CSM o
CTMU para comenzar el funcionamiento normal. Para la mayora de las aplicaciones, un rango
superior, inferior y superior, UMBRAL SCANTIME dar lugar a una mejor deteccin de pulsacin de
tecla. de PIN mltiple puede ser declarado en "opciones", sino que debe ser pasadores vlidos
utilizados por el CSM o CTMU. El usuario tambin puede generar un ISR TIMER0 con interrupcin
de TIMER0 que ocurren cada tiempo de exploracin milisegundos. En este caso, sern ejecutadas
por primera vez el ISR de CTMU de CSM o.

Ejemplos:

#Utilice TCTIL (umbral = 5, PIN_D5 = '5', PIN_B0 =


'C')
void main (void)
{
c carbn;
enable_interrupts (global);
while (1) {
c = TOUCHPAD_GETC (); // Esperar hasta que se detecte
un alfiler
} // Si no se pulsa PIN_B0, c tendr 'C'
} // Si no se pulsa PIN_D5, c tendr '5'

Ejemplo
archivos
:
UNlso Ver:

Nonortemi

touchpad_state (),touchpad_getc (),touchpad_hit ()

#WADVERTENCIA
Syntax: #WARNING texto
Elementos:
Propsito:

texto yos opcional y puede ser cualquier texto


Fuerza al compilador que genere una advertencia en el lugar de esta directiva aparece en el
archivo. El texto puede incluir macros que se ampliarn para la pantalla. Esto puede ser usado
para ver la expansin macro. El comando tambin puede ser utilizado para alertar al usuario de
una situacin de tiempo de compilacin no vlido.
To evitar la advertencia de ser contado como una advertencia, utilice esta sintaxis: # advertencia /
informacin de texto
133

CCS C 10082015

Ejemplos:

134

#if BUFFER_SIZE <32


# Advertencia de desbordamiento de bfer puede producirse
#terminara si

preprocesor

Ejemplo
archivos
:
UNlso Ver:

ex_psp.do

#ERROR

#Word
Syntax: #WORD yore=incgnita
Elementos:

carn de identidad yoes un identificador vlido C,


incgnitayos una variable C o una constante

Propsito:

Si la ID ya se conoce como una variable C entonces esto va a localizar la variable en la direccin


x. En este caso, el tipo de variable no cambia de la definicin original. Si la identificacin no se
conoce una nueva variable C se crea y se coloca en la direccin x con los Int16 de tipo
AdvertenciaEn ambos casos la memoria en x no es exclusivo de esta variable. Otras variables
pueden estar situados en la misma ubicacin. De hecho, cuando x es una variable, entonces x
Identificacin y comparten la misma posicin de memoria.

Ejemplos:

#word datos = 0x0800


struct {
int lowerByte: 8;
int upperByte: 8;
Control_word};
#word control_word = 0x85
...
control_word.upperByte = 0x42;

Ejemplo
archivos
:

Nonortemi

UNlso Ver:
#bit,#porte,#locate,#reserva,Registros con nombre,Type especificadores,Type Calificadores,
EnumeCalificacin
tipos,Estructuras y Uniones,TypedeF

135

CCS C 10082015

#zero_ram
Syntax: #ZERO_RAM
Elementos:
Propsito:

Ejemplos:

Ninguna
This directiva de cero a cabo todos los registros internos que pueden ser usados para
sostener las variables antes de que comience la ejecucin del programa.
#zero_ram
void main () {
}

Ejemplo
archivos
:
UNlso Ver:

136

ex_cust.c

Ninguna

INCORPORADO FUNCIONES
FUNCIONES INTEGRADAS
Thcompilador e CCS ofrece una gran cantidad de funciones incorporadas para acceder y utilizar los perifricos
del microcontrolador PIC. Esto hace que sea muy fcil para los usuarios configurar y utilizar los perifricos sin
entrar en detalles en profundidad de los registros relacionados con la funcin. Las funciones categorizadas por
los perifricos asociados con ellos se enumeran en la pgina siguiente. Haga clic en el nombre de la funcin para
obtener una descripcin completa y descripciones de los parmetros y valores de retorno.
abdominales()
......................................................................................................................................................................137
pecado()
cos () tan () asin () acos () atan () sinh () cosh () tanh () atan2 ().................................................. ..........
137 adc_done()
............................................................................................................................................................138 ASSErt ()
..................................................................................................................................................................139 undedo
del pie
........................................................................................................................................................................140
unTOF ()
......................................................................................................................................................................140
pin_select () .............................................................................................................................................................141
untoi ()
atol () atoi32 () .....................................................................................................................................142
unt_clear_interrupts ()
..............................................................................................................................................142
unt_disable_interrupts ()
...........................................................................................................................................143 unt_enable_interrupts
() ...........................................................................................................................................144 unt_get_capture ()
....................................................................................................................................................145
unt_get_missing_pulse_delay ()
...............................................................................................................................145 unt_get_period ()
......................................................................................................................................................146
unt_get_phase_counter ()
........................................................................................................................................147 unt_get_resolution
().................................................................................................................................................147 unt_get_set_point
()..................................................................................................................................................148
unt_get_set_point_error ()
........................................................................................................................................148 unt_get_status
().......................................................................................................................................................149
unt_interrupt_active ()...............................................................................................................................................150
unt_set_compare_time ()..........................................................................................................................................151
unt_set_missing_pulse_delay ()
...............................................................................................................................151 unt_set_resolution ()
.................................................................................................................................................152 unt_set_set_point ()
..................................................................................................................................................152 unt_setup_cc
().........................................................................................................................................................153 bit_clear
()...............................................................................................................................................................154 bit_set ()
.................................................................................................................................................................154 bit_test ()
................................................................................................................................................................155
segundorownout_enable
().................................................................................................................................................156 bsearch()
...............................................................................................................................................................156 calloc()
...................................................................................................................................................................157 hacer
techo().......................................................................................................................................................................15
7 clc1_setup_gate () clc2_setup_gate () clc3_setup_gate () clc4_setup_gate ()..................................................
.158 clc1_setup_input () clc2_setup_input () clc3_setup_input () clc4_setup_input ()
................................................ 159 clear_interrupt ()
.....................................................................................................................................................160
clear_pwm1_interrumpir () clear_pwm2_interrupt () clear_pwm3_interrupt () clear_pwm4_interrupt ()
131

clear_pwm5_interrupt () clear_pwm6_interrupt () ..................................................................................................160


cog_status ()...........................................................................................................................................................161
cog_restart () ..........................................................................................................................................................162
dorc_calc ()
crc_calc8 () crc_calc16 () ...............................................................................................................162
dorc_init
(modo).........................................................................................................................................................163
cwg_status () ..........................................................................................................................................................163
cwg_reiniciar(
)..........................................................................................................................................................164 dac_writo
().............................................................................................................................................................164
delay_cycles()........................................................................................................................................................165

132

Funciones
integradas
Delay_ms().............................................................................................................................................................165
delay_us()..............................................................................................................................................................166
disable_interrupts () ................................................................................................................................................167
disable_pwm1_interrumpir () disable_pwm2_interrupt () disable_pwm3_interrupt ()
disable_pwm4_interrumpir () disable_pwm5_interrupt () disable_pwm6_interrupt ().................................................
168
div()
Ldiv
()..............................................................................................................................................................169
enable_interrupts () ................................................................................................................................................169
enable_pwm1_interrumpir () enable_pwm2_interrupt () enable_pwm3_interrupt
()
enable_pwm4_interrumpir () enable_pwm5_interrupt () enable_pwm6_interrupt () ..................................................
170
mirase_eeprom
()
.....................................................................................................................................................171
mirase_program_eeprom ()......................................................................................................................................171
exp() ......................................................................................................................................................................172
ext_int_edge ()........................................................................................................................................................173
(FABS) .....................................................................................................................................................................173
getc ()
getch () getchar () fgetc ()..................................................................................................................174
piso( ) .....................................................................................................................................................................175
HOQF
()
....................................................................................................................................................................175
gratis(
)
......................................................................................................................................................................176 frexp
() ....................................................................................................................................................................176
get_capture () .........................................................................................................................................................177
get_capture_event () ...............................................................................................................................................177
get_capture_time () .................................................................................................................................................178
get_capture32 () ......................................................................................................................................................178
get_hspwm_capture () ............................................................................................................................................179
get_nco_accumulator () ..........................................................................................................................................180
get_nco_inc_value () ..............................................................................................................................................180
get_ticks () ..............................................................................................................................................................181
get_timerA ()...........................................................................................................................................................181
get_timerB ()...........................................................................................................................................................182
get_timerx () ...........................................................................................................................................................182
get_tris_x ().............................................................................................................................................................183
geTENV
()
.................................................................................................................................................................183 irdirigirse(
)
......................................................................................................................................................187
high_speed_adc_done() ........................................................................................................................................188
i2c_init () .................................................................................................................................................................188
i2c_isr_sTate () ........................................................................................................................................................189
i2c_poll() ................................................................................................................................................................190
i2c_read() ..............................................................................................................................................................190
i2c_slaveaddr () ......................................................................................................................................................191
i2c_speed()............................................................................................................................................................192
i2c_starta
de
()...............................................................................................................................................................192
i2c_sparte
superior(
)...............................................................................................................................................................193 i2c_writo
() ..............................................................................................................................................................193 input ()
....................................................................................................................................................................194
input_change_x() ...................................................................................................................................................195
input_state ()...........................................................................................................................................................196
input_x() ................................................................................................................................................................196
enterrupt_active ()....................................................................................................................................................197
isalnum(Char) isalpha (char) iscntrl (x) isdigit (char) isgraph (x) islower (char) isspace (char)
isupper (char) isxdigit (char) isprint (x) ispunct (x) .................................................. ...............................................
197
est
entre()...............................................................................................................................................................198
yoTOA
()
......................................................................................................................................................................199
saltar_to_isr ()..........................................................................................................................................................200
kbhit () ....................................................................................................................................................................200
label_addO
prima
133

CCS C 10082015
()......................................................................................................................................................201 laboratorios()
.....................................................................................................................................................................202
lcd_concontraste
().........................................................................................................................................................202
lcd_load()...............................................................................................................................................................203
lcd_symbol() ..........................................................................................................................................................203
ldexp() ...................................................................................................................................................................204
Iniciar
sesin()
.......................................................................................................................................................................204
log10() ...................................................................................................................................................................205

134

Funciones
integradas
longjmp()................................................................................................................................................................206
make8() .................................................................................................................................................................206
make16() ...............................................................................................................................................................207
make32() ...............................................................................................................................................................207
malloc()..................................................................................................................................................................208
memcpy()
memmove ().....................................................................................................................................208
memset () ...............................................................................................................................................................209
modf () ....................................................................................................................................................................210
_mul() ....................................................................................................................................................................210 n
/
ARGS
()
...................................................................................................................................................................211 offsetof
()
offsetofbit () ......................................................................................................................................212
UNEDtput_x
()
..............................................................................................................................................................213
UNEDtput_bit
()
............................................................................................................................................................213
UNEDtput_drive
()
........................................................................................................................................................214
UNEDtput_float
()
.........................................................................................................................................................215
UNEDtput_high
()
.........................................................................................................................................................215 UNEDtput_low
()...........................................................................................................................................................216
UNEDtput_toggle
()
......................................................................................................................................................217
Educacin
fsicarror
()
..................................................................................................................................................................217
pid_busy()..............................................................................................................................................................218
pid_get_result ()......................................................................................................................................................218
PID_read () ..............................................................................................................................................................219
pid_writo ()..............................................................................................................................................................220
pll_locked() ............................................................................................................................................................221
correosrt_x_pullups
()....................................................................................................................................................221 pow() Pwr ()
...........................................................................................................................................................222
printf
()
fprintf () ................................................................................................................................................223
profileout () ..............................................................................................................................................................224
psmc_blanking() ....................................................................................................................................................225
psmc_deadband()..................................................................................................................................................226
psmc_duTy ()...........................................................................................................................................................227
psmc_freq_adjust () ................................................................................................................................................228
psmc_modulation() ................................................................................................................................................228
psmc_pins() ...........................................................................................................................................................230
psmc_shutdown() ..................................................................................................................................................231
psmc_sync() ..........................................................................................................................................................232
psp_output_full ()
psp_input_full () psp_overflow ().................................................. ........................................ 233
putc_send ()
fputc_send ()...............................................................................................................................233
pwm_off ()................................................................................................................................................................234
pwm_on()................................................................................................................................................................235
pwm_set_duty () ......................................................................................................................................................235
pwm_set_duty_percent ..........................................................................................................................................236
pwm_set_frequency ...............................................................................................................................................236
pwm1_interrupt_active () pwm2_interrupt_active () pwm3_interrupt_active ()
pwm4_interrupt_active () pwm5_interrupt_active () pwm6_interrupt_active () .................................................. .... 237
qei_get_count ()......................................................................................................................................................237
qei_status ()............................................................................................................................................................238
QSOrt
()
....................................................................................................................................................................238
rand () .....................................................................................................................................................................239
rcv_buffer_bytes ()..................................................................................................................................................240
rcv_buffer_full ()......................................................................................................................................................240
read_adc () .............................................................................................................................................................241
read_bank () ...........................................................................................................................................................242
read_calibration ()...................................................................................................................................................242
read_configuration_memory ()................................................................................................................................243
135

CCS C 10082015
read_eeprom ().......................................................................................................................................................244
read_extended_ram () ............................................................................................................................................244
read_program_memory () read_external_memory () .................................................. ....................................... 245
read_high_speed_adc ().........................................................................................................................................245
read_rom_memory () ..............................................................................................................................................247
read_sd_adc () .......................................................................................................................................................247
realloc () .................................................................................................................................................................248

136

Funciones
integradas
release_io ().............................................................................................................................................................249
reset_cpu () ............................................................................................................................................................249
restart_cause () ......................................................................................................................................................250
restart_wdt () ..........................................................................................................................................................250
girar
a
la
izquierda(
)
............................................................................................................................................................251 Gira a la
derecha( ) ..........................................................................................................................................................252
rtc_alarm_read () ....................................................................................................................................................252
rtc_alarm_write ()....................................................................................................................................................253
rtc_read () ...............................................................................................................................................................254
rtc_write ()...............................................................................................................................................................254
rtos_await ()............................................................................................................................................................255
rtos_disable ().........................................................................................................................................................255
rtos_enable () .........................................................................................................................................................256
rtos_msg_poll ()......................................................................................................................................................256
rtos_msg_read () ....................................................................................................................................................257
rtos_msg_send ()....................................................................................................................................................257
rtos_overrun () ........................................................................................................................................................258
rtos_run () ...............................................................................................................................................................258
rtos_signal ()...........................................................................................................................................................259
rtos_stats ().............................................................................................................................................................259
rtos_terminate () .....................................................................................................................................................260
rtos_wait ()..............................................................................................................................................................260
rtos_yield ().............................................................................................................................................................261
SEt_adc_channel () .................................................................................................................................................262
SEt_analog_pins () ..................................................................................................................................................262
escanearf
()
...................................................................................................................................................................263
SEt_cog_blanking () ................................................................................................................................................265
SEt_cog_dead_band ()............................................................................................................................................266
SEt_cog_phase ()....................................................................................................................................................266
SEt_compare_time ()...............................................................................................................................................267
SEt_dedicated_adc_channel ()................................................................................................................................268
SEt_hspwm_duty () .................................................................................................................................................269
SEt_hspwm_event ()
set_hspwm_event_secondary () .................................................. .....................................
269
SEt_hspwm_override
()
...........................................................................................................................................270 SEt_hspwm_phase ()
..............................................................................................................................................271 SEt_nco_inc_value ()
..............................................................................................................................................272 SEt_open_drain ()
...................................................................................................................................................272
SEt_power_pwm_override () ...................................................................................................................................273
SEt_power_pwmx_duty () .......................................................................................................................................273
SEt_pulldown () .......................................................................................................................................................274
SEt_pullup ()............................................................................................................................................................274
SEt_pwm1_duty ()
set_pwm2_duty () set_pwm3_duty () set_pwm4_duty () set_pwm5_duty () ................... 275
SEt_pwm1_offset () set_pwm2_offset () set_pwm3_offset () set_pwm4_offset ()
SEt_pwm5_offset () set_pwm6_offset ().................................................................................................................276
SEt_pwm1_period () set_pwm2_period () set_pwm3_period () set_pwm4_period ()
SEt_pwm5_period () set_pwm6_period () ..............................................................................................................277
SEt_pwm1_phase () set_pwm2_phase () set_pwm3_phase () set_pwm4_phase ()
SEt_pwm5_phase () set_pwm6_phase ()...............................................................................................................278
SEt_open_drain_x ().................................................................................................................................................278
SEt_rtcc ()
set_timer0 () set_timer1 () set_timer2 () set_timer3 () set_timer4 () set_timer5 ()................. 279
SEt_ticks () ..............................................................................................................................................................280
SEtup_sd_adc_calibration ()....................................................................................................................................280
SEt_sd_adc_channel () ...........................................................................................................................................281
SEt_timerA () ...........................................................................................................................................................281
SEt_timerB () ...........................................................................................................................................................282
SEt_timerx ()............................................................................................................................................................283
SEt_tris_x () .............................................................................................................................................................283
SEt_uart_speed () ...................................................................................................................................................284
SEtjmp () .................................................................................................................................................................285
SEtup_adc (modo)....................................................................................................................................................285
SEtup_adc_ports ()..................................................................................................................................................286
SEtup_adc_reference () ..........................................................................................................................................286
137

CCS C 10082015

SEtup_at () ..............................................................................................................................................................287
SEtup_ccp1 ()
setup_ccp2 () setup_ccp3 () setup_ccp4 () setup_ccp5 () setup_ccp6 () ......................... 287
SEtup_clc1 ()
setup_clc2 () setup_clc3 () setup_clc4 () .................................................. ....................................
289
SEtup_comparator
()
...............................................................................................................................................290
SEtup_counters
()....................................................................................................................................................291
SEtup_cog
()............................................................................................................................................................291 SEtup_crc
().............................................................................................................................................................292
SEtup_cwg () ...........................................................................................................................................................293
SEtup_dac ()............................................................................................................................................................294
SEtup_dedicated_adc () ..........................................................................................................................................294
SEtup_external_memory ()......................................................................................................................................295
SEtup_high_speed_adc () .......................................................................................................................................296
SEtup_high_speed_adc_pair () ...............................................................................................................................296
SEtup_hspwm_blanking ().......................................................................................................................................297
SEtup_hspwm_chop_clock () ..................................................................................................................................298
SEtup_hspwm_trigger () ..........................................................................................................................................299
SEtup_hspwm_unit () ..............................................................................................................................................299
SEtup_hspwm ()
setup_hspwm_secondary () ...................................................................................................300
SEtup_hspwm_unit_chop_clock () ..........................................................................................................................301
SEtup_lcd ().............................................................................................................................................................302
SEtup_low_volt_detect ().........................................................................................................................................303
SEtup_nco ()............................................................................................................................................................303
SEtup_opamp1 ()
setup_opamp2 () setup_opamp3 () .................................................. ......................................
304
setup_oscillator
()
...................................................................................................................................................305
SEtup_pga
()
...........................................................................................................................................................305
SEtup_pid
().............................................................................................................................................................306
SEtup_pmp
(opcin,
address_mask)
.........................................................................................................................307
SEtup_psmc
().........................................................................................................................................................308
SEtup_power_pwm () ..............................................................................................................................................309
SEtup_power_pwm_pins () .....................................................................................................................................311
SEtup_psp
(opcin,
address_mask)...........................................................................................................................311 SEtup_pwm1 ()
setup_pwm2 () setup_pwm3 () setup_pwm4 () .................................................. .................. 312 SEtup_qei
().............................................................................................................................................................313 SEtup_rtc
()
.............................................................................................................................................................313
SEtup_rtc_alarm () ..................................................................................................................................................314
SEtup_sd_adc ()......................................................................................................................................................314
SEtup_smtx () ..........................................................................................................................................................315
SEtup_spi () setup_spi2 () .......................................................................................................................................316
SEtup_timer_A () .....................................................................................................................................................316
SEtup_timer_B () .....................................................................................................................................................317
SEtup_timer_0 () .....................................................................................................................................................318
SEtup_uart () ...........................................................................................................................................................318
SEtup_vref () ...........................................................................................................................................................319
SEtup_wdt ()............................................................................................................................................................319
SEtup_zdc ()............................................................................................................................................................320
shift_left ()...............................................................................................................................................................320
shift_right ().............................................................................................................................................................321
dormir() ...................................................................................................................................................................322
sleep_ulpwu() ........................................................................................................................................................322
smtx_read () ...........................................................................................................................................................324
smtx_reset_timer ().................................................................................................................................................324
smtx_start ()............................................................................................................................................................325
smtx_status () .........................................................................................................................................................325
smtx_stop ()............................................................................................................................................................325
smtx_write () ...........................................................................................................................................................326
smtx_update ()........................................................................................................................................................326
spi_data_is_in () spi_data_is_in2 () ........................................................................................................................327
spi_init () ..................................................................................................................................................................327
spi_preescribir
(datos);
..................................................................................................................................................328
spi_read()
Spi_read2
()
........................................................................................................................................328
138

Funciones
integradas
spi_read_16()
spi_read2_16 () spi_read3_16 () spi_read4_16 () ..................................................
......................
329
spi_speere
...............................................................................................................................................................330

139

CCS C 10082015

spi_writo () spi_write2 () .........................................................................................................................................330


spi_xfer ()................................................................................................................................................................331
SPI_XFER_IN () ......................................................................................................................................................332
sprintf () ..................................................................................................................................................................332
cuadradosrt
()
......................................................................................................................................................................333
srand () ...................................................................................................................................................................333
Funciones de cadena estndar () () memchr memcmp () strcat () strchr () strcmp () strcoll (
) Strcspn () strerror () stricmp () strlen () strlwr () strncat () strncmp () strncpy () strpbrk ()
strrchr () strspn () strstr () strxfrm ()
334
strcpy () strcopy ()...................................................................................................................................................335
strtod () ...................................................................................................................................................................336
strtok () ...................................................................................................................................................................336
strtol () ....................................................................................................................................................................338
strtoul () ..................................................................................................................................................................338
intercambiar().................................................................................................................................................................
...339
tolower () toupper () ................................................................................................................................................339
touchpad_getc ().....................................................................................................................................................340
touchpad_hit ()........................................................................................................................................................341
touchpad_state ()....................................................................................................................................................342
tx_buffer_available () ...............................................................................................................................................342
tx_buffer_bytes ().....................................................................................................................................................343
tx_buffer_full ()........................................................................................................................................................344
va_arg () .................................................................................................................................................................344
va_end() ................................................................................................................................................................345
va_starta...................................................................................................................................................................345
write_bank ()...........................................................................................................................................................346
write_configuration_memory () ...............................................................................................................................347
write_eeprom () ......................................................................................................................................................347
write_external_memory () .......................................................................................................................................348
write_extended_ram ()............................................................................................................................................349
write_program_eeprom () .......................................................................................................................................349
zdc_staTUS
()
...........................................................................................................................................................350

140

Funciones
integradas

abdominales( )
Syntax: valor = abs (incgnita)
parmetros:

incgnitayos un signo de 8, 16 o 32 bits int o un flotador

Devoluciones:
Funcin:

El mismo tipo como el parmetro.


Calcula el valor absoluto de un nmero.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <stdlib.h>
int firmado objetivo,
real;
...
error = abs (meta-real);

Archivos de ejemplo:
UNlso Ver:

pecado
un
bronce

Ninguna

laboratorios()

cos ()
sinh ()

tan ()
como
aporrea tanh ()
r()

acos ()
atan2 ()

Syntax: val = sen (radval) = cos (rad)


Val = tan (rad)
Rad = asin (val)
Rad1 = Acos
(val) Rad = atan
(val)
RAD2
=
atan2
(val,val)
resultado = senh
(valor) Resultado =
cosh
(valor)
Resultado = tanh
(valor)
parmetros:

Devoluciones:

rad yos un flotador que representa un ngulo en radianes -2pi a 2 pi.


Virginialyos un flotador con el rango de -1,0 a 1.0.
Valor yoEs un flotador
rad es un flotador que representa un ngulo en
radianes-pi / 2 a pi / 2 val es un flotador con el rango de 1,0 a 1,0.
141

CCS C 10082015
rad1 es un flotador que representa un ngulo en radianes 0 a pi

142

Funciones
integradas
RAD2 es un flotador que representa un ngulo en radianes pi-pi de
El resultado es un flotador
Funcin:

Tesfunciones e realizan funciones trigonomtricas bsicas.


sen devuelve el valor del parmetro de seno (medido en radianes)
doOS
devuelve el valor del coseno del parmetro (medido en radianes)
broncearse
devuelve el valor de la tangente del parmetro (medido en radianes)
comoen
devuelve el valor de arco seno en el intervalo [-pi / 2, + pi / 2 radianes]
C.AOS Devuelve el valor del coseno de arco en el intervalo [0, pi radianes]
unbroncearse
devuelve el valor de la tangente del arco en el rango [-pi / 2, + pi / 2
untan2 devuelve el arco tangente de y / x en el intervalo [-pi, pi +] radianes
sinh
devuelve el seno hiperblico de x
doSST devuelve el coseno hiperblico de x
tanh
devuelve la tangente hiperblica de x
Nota sobre el control
de errores:
Si se incluye "errno.h", entonces los errores de dominio y el rango se almacenan en la
variable errno. El usuario puede comprobar el valor en errno para ver si se ha producido
un error e imprimir el error utilizando la funcin perror.
error de dominio se produce en los siguientes
casos: asin: cuando el argumento no en el
intervalo [-1, + 1] acos: cuando no el argumento
en el intervalo [-1, + 1] atan2: cuando los dos
argumentos son cero
Error de rea ocurrir en los siguientes
casos: cosh: cuando el argumento es
demasiado grande senh: cuando el
argumento es demasiado grande

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <math.h>
flotar fase;
// Una onda sinusoidal de salida
para (fase = 0; fase <2 * 3,141596; fase + = 0,01)
set_analog_voltage (sin (fase) 1);

Archivos de ejemplo:
UNlso Ver:

ex_tank.c

Iniciar sesin(),log10(),exp(),pow(),SQRt ()

adc_done ()
Syntax: valor = adc_done ();
parmetros:

Ninguna
dohannel yos un parmetro opcional para especificar el canal para comprobar si la
143

CCS C 10082015
conversin se realiza. Si no se especifica se utilice el canal especificado en la ltima
llamada a set_adc_channel (),

144

Funciones
integradas
read_adc () o adc_done (). Slo disponible para la familia dsPIC33EPxxGSxxx.
Devoluciones:
todava est ocupado.
Funcin:

Un short int. VERDADERO si el convertidor A / D se realiza con la conversin, FALSE si

Puede ser consultados para determinar si el A / D tiene datos vlidos.

Disponibilidad:

ONLy est disponible en dispositivos con construido en convertidores analgico a digital

Se requiere:
Ejemplos:

Ninguna
valor Int16; setup_adc_ports (sAN0 |
SAN1, VSS_VDD); setup_adc
(ADC_CLOCK_DIV_4 | ADC_TAD_MUL_8);
set_adc_channel (0); read_adc
(ADC_START_ONLY);
INT1 hecho adc_done = ();
while (! Listo) {
done = adc_done ();
}
valor = read_adc (ADC_READ_ONLY);
printf ( "A / C = valor LX% \ n \ r", valor);
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_adc (),SEt_adc_channel (),setup_adc_po(RTS),read_adc (),ADC general

valer ()
Syntax: assert (condicin);
parmetros:
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

doONDICIN yoEs cualquier expresin relacional


Nada
Thila funcin s prueba la condicin y si es FALSO generar un mensaje de error en stderr
(por defecto la primera RS232 uso en el programa). El mensaje de error incluir el archivo
unlnea D de la asercin (). Ningn cdigo se genera para la asercin () si #define
NODEBUG. De esta manera usted puede incluir afirma en su cdigo para la prueba y
rpidamente a eliminarlas
el programa final.
Todos los dispositivos
ASSErt.h y #Utilice RS232
afirm (number_of_entries <table_size);

139

CCS C 10082015

// Si es number_of_entries> = table_size continuacin,


// El siguiente es resultado de la RS232:
// Asercin, myfile.c archivo, la lnea 56

Archivos de ejemplo:
UNlso Ver:

Ninguna

#RS232 USO,RS232 E / S Descripcin general

un dedo del pie


Syntax: ATOE (sTring);
parmetros:

sTring yos un puntero a una cadena terminada en nulo de caracteres.

Devoluciones:
Funcin:

El resultado es un nmero de coma flotante


Convierte la cadena que se pasa a la funcin en una representacin de punto flotante. Si
el resultado no puede ser representado, el comportamiento no est definido. Esta
funcin tambin se ocupa de los nmeros de formato de correo

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <stdlib.h>
char string [10];
float32 x;
strcpy (cadena, "12E3");
x = ATOE (cadena);
// X es ahora 12000.00

Archivos de ejemplo:
UNlso Ver:

Ninguna

untoi (),untol (),atoi32(),atoF(),printf ()

atof ()
Syntax: resultado = atof (sTring)
parmetros:
Devoluciones:
Funcin:

140

sTring yos un puntero a una cadena terminada en nulo de caracteres.


El resultado es un nmero de coma flotante
Convierte la cadena que se pasa a la funcin en una representacin de punto flotante. Si
el resultado no puede ser representado, el comportamiento no est definido.

Funciones
integradas

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <stdlib.h>
char string [10];
flotar x;
strcpy (cadena, "123.456");
x = atof (cadena);
// X es ahora 123.456

Archivos de ejemplo:
UNlso Ver:

ex_tank.c

untoi (),untol (),atoi32(),printf ()

pin_select ()
Syntax: pin_select (Educacin fsicaripheral_alfiler,alfiler, [desbloquear],[bloquear])
Parmetros: peripheral_pin - especificando una cadena constante cuyo pasador perifrico para mapear el pin
especificado a. Consulte la #pin_select para todas las cadenas disponibles. El uso de
"NULO" para el parmetro peripheral_pin ser anular la asignacin de la clavija perifrico
de salida que se encuentra actualmente asignado al pin pasado para el parmetro pin.
alfiler - El pasador al mapa al pasador perifrica especificado. Consulte el archivo de
cabecera del dispositivo para el pin define. Si el parmetro es una entrada
peripheral_pin, pasando FALSO para el parmetro PIN anular la asignacin de la clavija
que se encuentra actualmente asignado a ese pin perifrica.
desbloquear - Parmetro opcional que especifica si se debe realizar una secuencia de
desbloqueo antes de escribir el RPINRx o RPORx registrarse Registrar determinado por
opciones peripheral_pin y el pin. El valor predeterminado es TRUE si no se especifica. La
secuencia de desbloqueo debe realizarse para permitir operaciones de escritura en los
registros y RPINRx RPORx. Esta opcin permite hacer llamadas pin_select () varias veces
sin llevar a cabo una secuencia de desbloqueo cada vez.
bloquear - Parmetro opcional que especifica si se debe realizar una secuencia de
bloqueo despus de escribir los registros RPINRx o RPORx. El valor predeterminado es
TRUE si no se especifica. Aunque no es necesario, es una buena idea para bloquear el
RPINRx y RPORx registra desde las escrituras despus de todos los pines han sido
asignadas. Esta opcin permite hacer llamadas pin_select () varias veces sin llevar a cabo
una secuencia de bloqueo cada vez.
Devoluciones:
Disponibilidad:
Se requiere:
Ejemplos:

Nada.
On dispositivo con los pernos perifricos reasignables.
Pin define en el archivo de cabecera del dispositivo.
pin_select ( "U2TX", PIN_B0);
// Mapas PIN_B0 a U2TX // pin perifrica, realiza desbloquear
secuencias // y de bloqueo.
pin_select ( "U2TX", PIN_B0, VERDADERO, FALSO);
141

CCS C 10082015

// Mapas PIN_B0 a U2TX // pin perifrica y realiza // desbloquear secuencia.


pin_select ( "U2RX", PIN_B1, false, true);
// Mapas PIN_B1 a U2RX // pin perifrica y realiza bloqueo // secuencia.
Archivos de ejemplo:
UNlso Ver:

Ninguna.

#pin_select

atoi () atol () atoi32 ()


Syntax: iValue = atoi (sTring)
o
lvalue = atol (sTring)
o
i32value = atoi32 (sTring)

parmetros:

sTring yos un puntero a una cadena terminada en nulo de caracteres.

Devoluciones:

Ivalue es un
entero de 8 bits.
lvalue es un int de
16 bits.
i32value es un int 32 bits.

Funcin:

Convierte la cadena que se pasa a la funcin en una representacin int. Acepta tanto
decimal y hexadecimal argumento. Si el resultado no puede ser representado, el
comportamiento no est definido.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <stdlib.h>
char string [10];
int x;
strcpy (cadena, "123");
x = atoi (cadena);
// X es ahora 123

Archivos de ejemplo:
UNlso Ver:

entrada.do

printf ()

at_clear_interrupts ()

142

Syntax: (at_clear_interruptsinterrupts);

Funciones
integradas

143

CCS C 10082015

Parmetros: interrupciones - Una constante que especifica de 8 bits que interrumpe AT para desactivar. Las
constantes se definen en el archivo de cabecera del dispositivo como:
AT_PHASE_INTERRUPT
AT_MISSING_PULSE_INTERRUPT
AT_PERIOD_INTERRUPT
AT_CC3_INTERRUPT
AT_CC2_INTERRUPT
AT_CC1_INTERRUPT
Devoluciones:
Funcin:

Nada
To desactivar las banderas de interrupcin del temporizador angular. Ms de una
interrupcin se puede borrar a la vez varias constantes OR'ing juntos en una sola
llamada, o llamando a la funcin varias veces para cada interrupcin para despejar.

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Constantes definidas en el archivo de cabecera del dispositivo


# INT-AT1
void1_isr
(void)
[
si (at_interrupt_active
(AT_PERIOD_INTERRUPT)) [
handle_period_interrupt ();
at_clear_interrupts (AT_PERIOD_INTERRUPT);
]
si (at_interrupt (activo
(AT_PHASE_INTERRUPT); [
handle_phase_interrupt ();
at_clear_interrupts (AT_PHASE_INTERRUPT);
]
]

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay


(),unt_get_missing_pulse_delay (),unt_get_period (),at_get_phase_counter (), at_set_set_point
(),unt_get_set_point (), At_get_set_point_error (), at_enable_interRupts (),unt_disable_interrupts
(),unt_interrupt_active (),unt_setup_cc (),unt_set_compare_time (),unt_get_capture
(),unt_get_status (),SEtup_at ()

at_disable_interrupts ()
Syntax: (at_disable_interruptsenterrupts);
Parmetros: interrupciones - Una constante que especifica de 8 bits que interrumpe AT para desactivar. Las
constantes se definen en el archivo de cabecera del dispositivo como:

144

Funciones
integradas
AT_PHASE_INTERRUPT
AT_MISSING_PULSE_INTERRUPT
AT_PERIOD_INTERRUPT
AT_CC3_INTERRUPT
AT_CC2_INTERRUPT
AT_CC1_INTERRUPT
Devoluciones:
Funcin:

Nada
To desactivar las interrupciones del temporizador angular. Ms de una interrupcin puede
desactivarse a la vez OR'ing varias constantes juntos en una sola llamada, o llamando a
la funcin varias veces para interrumpir eadch estar deshabilitado.

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Constantes definidas en el archivo de cabecera del dispositivo


at_disable_interrupts (AT_PHASE_INTERRUPT);
at_disable_interrupts (AT_PERIOD_INTERRUPT | AT_CC1_INTERRUPT);

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay


(),unt_get_missing_pulse_delay (),unt_get_period (),at_get_phase_counter (), at_set_set_point
(),unt_get_set_point (), At_get_set_point_error (), at_enable_interRupts (),unt_clear_interrupts
(),unt_interrupt_active (),unt_setup_cc (),unt_set_compare_time (),unt_get_capture
(),unt_get_status (),SEtup_at ()

at_enable_interrupts ()
Syntax: (at_enable_interruptsenterrupts);
Parmetros: interrupciones - Una constante que especifica 8 bits que AT interrumpe habilitar. Las constantes
se definen en el archivo de cabecera del dispositivo como:
AT_PHASE_INTERRUPT
AT_MISSING_PULSE_INTERRUPT
AT_PERIOD_INTERRUPT
AT_CC3_INTERRUPT
AT_CC2_INTERRUPT
AT_CC1_INTERRUPT
Devoluciones:
Funcin:

Nada
To habilitar las interrupciones del temporizador angular. Ms de una interrupcin se puede
activar a la vez OR'ing varias constantes juntos en una sola llamada, o llamando a la
funcin varias veces para cada interrupcin est habilitado.

145

CCS C 10082015

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Constantes definidas en el archivo de cabecera del dispositivo


at_enable_interrupts (AT_PHASE_INTERRUPT);
at_enable_interrupts (AT_PERIOD_INTERRUPT | AT_CC1_INTERRUPT);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_at (), at_set_resolution (), at_get_resolution (), at_set_missing_pulse_delay (),


at_get_missing_pulse_delay (), at_get_phase_counter (), at_set_set_point (),
at_get_set_point (), at_get_set_point (), at_get_set_point_error (), at_disable_interrupts
(), at_clear_interrupts (), at_interrupt_active ( ), at_setup_cc (), at_set_compare_time (),
at_get_capture (), at_get_status ()

at_get_capture ()
Syntax: resultado = at_get_capture (cual);;
Parmetros: cuales - Una constante que especifica 8 bits que AT Capture / Compare mdulo para obtener el
tiempo de captura de, puede ser 1, 2 o 3.
Devoluciones:

Un entero de 16 bits

Funcin:
To conseguir uno de la captura del temporizador angular / Comparacin de los mdulos de
tiempo de captura.
Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Nada
RESULT1 = at_get_capture (1);
result2 = at_get_capture (2);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_at (), at_set_resolution (), at_get_resolution (), at_set_missing_pulse_delay (),


at_get_missing_pulse_delay (), at_get_phase_counter (), at_set_set_point (),
at_get_set_point (), at_get_set_point (), at_get_set_point_error (), at_enable_interrupts
(), at_disable_interrupts (), at_clear_interrupts ( ), at_interrupt_active (), at_setup_cc (),
at_set_compare_time (), at_get_status ()

at_get_missing_pulse_delay ( )

146

Funciones
integradas
Syntax: resultado = at_get_missing_pulse_delay ();
parmetros:

Ninguna.

Devoluciones:
Funcin:

Un entero de 16 bits
To configurar el pulso que falta angular Tiempo de Retardo

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Nada
resultado = at_get_missing_pulse_delay ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay (),unt_get_period


(),unt_get_phase_counter (), at_set_set_point (),unt_get_set_point (),
At_get_set_point_error (), unt_enable_interrupts (),unt_disable_interrupts (),
at_clear_interrupts (),unt_interrupt_active (),unt_setup_cc (),at_set_compare_time
(),unt_get_capture (),unt_get_status (),SEtup_at ()

at_get_period ()
Syntax: resultado = at_get_period ();
parmetros:

Ninguna.

Devoluciones:

Un entero de 16 bits. El MSB del valor devuelto especifica si el contador de tiempo


rod sobre una o ms veces. 1 - counter dio la vuelta al menos una vez, 0 - valor devuelto
es vlido.

Funcin:

TO conseguir angular temporizador periodo medido

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Nada
resultado = at_get_period ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay


(),unt_get_missing_pulse_delay (),unt_get_phase_counter (), at_set_set_point
(),unt_get_set_point (), At_get_set_point_error (), at_enable_interRupts (),unt_disable_interrupts
(),unt_clear_interrupts (),unt_interrupt_active (),unt_setup_cc
(),at_set_compare_hora(),unt_get_capture (),at_get_staTUS (),SEtup_at ()

147

CCS C 10082015

at_get_phase_counter ()
Syntax: resultado = at_get_phase_counter ();
parmetros:

Ninguna.

Devoluciones:
Funcin:

Un entero de 16 bits.
TO conseguir el temporizador contador de fase angular

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Nada
resultado = at_get_phase_counter ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay


(),unt_get_missing_pulse_delay (),unt_get_period (),at_set_set_point (),unt_get_set_point
(), At_get_set_point_error (), unt_enable_interrupts (),unt_disable_interrupts
(),unt_clear_interrupts (),unt_interrupt_active (),unt_setup_cc
(),at_set_compare_hora(),unt_get_capture (),at_get_staTUS (),SEtup_at ()

at_get_resolution ()
Syntax: resultado = at_get_resolution ();
parmetros:
Devoluciones:
Funcin:
Disponibilidad:
Se requiere:
Ejemplos:

148

Ninguna
Un entero de 16 bits
To configuracin de la resolucin angular del temporizador
Todos los dispositivos con un mdulo de AT.
Nada
resultado = at_get_resolution ();

Funciones
integradas
Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_set_missing_pulse_delay
(),unt_get_missing_pulse_delay (),unt_get_period (),unt_get_phase_counter (),
unt_set_set_point (),unt_get_set_point (), At_get_set_point_error (),
unt_enable_interrupts (),unt_disable_interrupts (),unt_clear_interrupts (),
unt_interrupt_active (),unt_setup_cc (),at_set_compare_hora(),unt_get_capture (),
at_get_staTUS (),SEtup_at ()

at_get_set_point ()
Syntax: resultado = at_get_set_point ();
parmetros:
Ninguna
Devoluciones:
Funcin:

Un entero de 16 bits
TO conseguir el punto angular ajuste de alarma

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Nada
resultado = at_get_set_point ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay


(),unt_get_missing_pulse_delay (),unt_get_period (),at_get_phase_counter (), at_set_set_point (),
At_get_set_point_error (), unt_enable_interrupts (),unt_disable_interrupts
(),unt_clear_interrupts (),unt_interrupt_active (),unt_setup_cc
(),at_set_compare_hora(),unt_get_capture (),at_get_staTUS (),SEtup_at ()

at_get_set_point_error ()
Syntax: resultado = at_get_set_point_error ();
parmetros:
Devoluciones:
Funcin:

Disponibilidad:

Ninguna
Un entero de 16 bits
TO conseguir el error angular Timer Set Point, el error del valor periodo medido en
comparacin con el valor del umbral.
Todos los dispositivos con un mdulo de AT.

149

CCS C 10082015

Se requiere:
Ejemplos:

Nada
resultado = at_get_set_point_error ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay


(),unt_get_missing_pulse_delay (),unt_get_period (),at_get_phase_counter (), at_set_set_point
(),unt_get_set_point (),unt_enable_interrupts (),unt_disable_interrupts (),unt_clear_interrupts
(),unt_interrupt_active (),unt_setup_cc (),unt_set_compare_time (),unt_get_capture
(),unt_get_status (),SEtup_at ()

at_get_status ()
Syntax: resultado = at_get_status ();
parmetros:

Ninguna

Devoluciones:
dispositivo como:

Un entero de 8 bits. Los resultados posibles se definen en el archivo de cabecera del


AT_STATUS_PERIOD_AND_PHASE_VALID
AT_STATUS_PERIOD_LESS_THEN_PREVIOUS

Funcin:

TO obtener el estado del mdulo angular del temporizador.

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Nada
if ((at_get_status () y
AT_STATUS_PERIOD_AND_PHASE_VALID) ==
AT_STATUS_PERIOD_AND_PHASE_VALID
[
Perodo = at_get_period
(); Fase = at_get_phase
();
]

Archivos de ejemplo:
UNlso Ver:

148

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay


(),unt_get_missing_pulse_delay (),unt_get_period (),at_get_phase_counter (), at_set_set_point
(),unt_get_set_point (), At_get_set_point_error (), at_enable_interRupts (),unt_disable_interrupts
(),unt_clear_interrupts (),unt_interrupt_active (),unt_setup_cc
(),at_set_compare_hora(),unt_get_capture (),SEtup_at ()

CCS C 10082015

at_interrupt_active ()
Syntax: resultado = at_interrupt_active (interrupt);
Parmetros: interrupciones - Una constante que especifica 8 bits que AT interrumpe para comprobar si se ha
establecido su bandera. Las constantes se definen en el archivo de cabecera del
dispositivo como:
AT_PHASE_INTERRUPT
AT_MISSING_PULSE_INTERRUPT
AT_PERIOD_INTERRUPT
AT_CC3_INTERRUPT
AT_CC2_INTERRUPT
AT_CC1_INTERRUPT
Devoluciones:

Funcin:
especificado.

TRUE especificado si el AT bandera de interrupcin se establece, interrumpir


est activo, o FALSE si la bandera es clara, las interrupciones no es activa.
To comprobar si se establece el indicador de interrupcin del temporizador angular

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Constantes definidas en el archivo de cabecera del dispositivo


# INT-AT1
void1_isr
(void)
[
si (at_interrupt_active
(AT_PERIOD_INTERRUPT)) [
handle_period_interrupt ();
at_clear_interrupts (AT_PERIOD_INTERRUPT);
]
si (at_interrupt (activo
(AT_PHASE_INTERRUPT); [
handle_phase_interrupt ();
at_clear_interrupts (AT_PHASE_INTERRUPT);
]
]

Archivos de ejemplo:
UNlso Ver:

150

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay


(),unt_get_missing_pulse_delay (),unt_get_period (),at_get_phase_counter (), at_set_set_point
(),unt_get_set_point (), At_get_set_point_error (), at_enable_interRupts (),unt_disable_interrupts
(),unt_clear_interrupts (),unt_setup_cc (),unt_set_compare_time (),unt_get_capture
(),unt_get_status (),SEtup_at ()

Funciones
integradas

at_set_compare_time ()
Syntax: at_set_compare_time (cual, compare_time);
Parmetros: cuales - Una constante que especifica 8 bits que AT Capture / Compare mdulo para
establecer el tiempo para comparar, puede ser 1, 2 o 3.
doompare_time - Una de 16 bits constante o variable que especifica el valor
para desencadenar un impulso de interrupcin / ouput.
Devoluciones:
Funcin:
tiempo.

Nada
To establecer uno de los Capture temporizador angular / Compara mdulo de comparar el

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Constantes definidas en el archivo de cabecera del dispositivo


at_set_compare_time (1,0x1FF);
at_set_compare_time (3, compare_time);

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay


(),unt_get_missing_pulse_delay (),unt_get_period (),at_get_phase_counter (), at_set_set_point
(),unt_get_set_point (), At_get_set_point_error (), at_enable_interRupts (),unt_disable_interrupts
(),unt_clear_interrupts (),unt_interrupt_active (),unt_setup_cc (),at_get_capture
(),unt_get_status (),SEtup_at ()

at_set_missing_pulse_delay ( )
Syntax: at_set_missing_pulse_delay (pulse_delay);
Parmetros: pulse_delay - Una variable de 16 bits constante o firmado para ajustar el retardo del impulso
faltante.
Devoluciones:
Funcin:
Disponibilidad:
Se requiere:
Ejemplos:

Nada
To configurar el pulso que falta angular Tiempo de Retardo
Todos los dispositivos con un mdulo de AT.
Nada
at_set_missing_pulse_delay (pulse_delay);

151

CCS C 10082015

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_get_missing_pulse_delay (),unt_get_period


(),unt_get_phase_counter (), at_set_set_point (),unt_get_set_point (),
At_get_set_point_error (), unt_enable_interrupts (),unt_disable_interrupts (),
at_clear_interrupts (),unt_interrupt_active (),unt_setup_cc (),at_set_compare_time
(),unt_get_capture (),unt_get_status (),SEtup_at ()

at_set_resolution ()
Syntax: at_set_resolution (resolucin);

Parmetros: resolucin - Una de 16 bits constante o variable para ajustar la resolucin.


Devoluciones:
Funcin:

Nada
To configuracin de la resolucin angular del temporizador

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Nada
at_set_resolution (resolucin);

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_get_resolution (),at_set_missing_pulse_delay (),unt_get_missing_pulse_delay


(),unt_get_period (),unt_get_phase_counter (), unt_set_set_point
(),unt_get_set_point (), At_get_set_point_error (), unt_enable_interrupts
(),unt_disable_interrupts (),unt_clear_interrupts (),unt_interrupt_active
(),unt_setup_cc (),at_set_compare_hora(),unt_get_capture (),at_get_staTUS (),SEtup_at
()

at_set_set_point ()
Syntax: at_set_set_point (SEt_point);
Parmetros: Set_Point - Una de 16 bits constante o variable para ajustar el punto de ajuste. El punto de
ajuste determina el valor del umbral que el perodo se compara con el clculo de error.
Devoluciones:

152

Nada

Funciones
integradas
Funcin:

TO conseguir el punto angular ajuste de alarma

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Nada
at_set_set_point (Set_Point);

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay


(),unt_get_missing_pulse_delay (),unt_get_period (),at_get_phase_counter (), at_get_set_point (),
At_get_set_point_error (), unt_enable_interrupts (),unt_disable_interrupts
(),unt_clear_interrupts (),unt_interrupt_active (),unt_setup_cc
(),at_set_compare_hora(),unt_get_capture (),at_get_staTUS (),SEtup_at ()

at_setup_cc ()
Syntax: at_setup_cc (cual, ajustes);
Parmetros: cuales - Una constante que especifica 8 bits que AT Capture / Compare con la configuracin, puede
ser 1, 2 o 3.
SEAjus tes - Una constante que especifica 16 bits cmo configurar el mdulo de
captura especifica AT / Comparar. Ver archivo de cabecera del dispositivo para todas
las opciones. Algunas de las opciones tpicas incluyen:
AT_CC_ENABLED
AT_CC_DISABLED
AT_CC_CAPTURE_MODE
AT_CC_COMPARE_MODE
AT_CAPTURE_FALLING_EDGE
AT_CAPTURE_RISING_EDGE
Devoluciones:

Nada

Funcin:
To configuracin de la captura de uno de temporizador angular / Comparar mdulos a la
configuracin especificada.
Disponibilidad:
Se requiere:
Ejemplos:

Todos los dispositivos con un mdulo de AT.


Constantes definidas en el archivo de cabecera del dispositivo
at_setup_cc (1, AT_CC_ENABLED |
AT_CC_CAPTURE_MODE | AT_CAPTURE_FALLING_EDGE |
AT_CAPTURE_INPUT_ATCAP);

153

CCS C 10082015
at_setup_cc (2, AT_CC_ENABLED |
AT_CC_CAPTURE_MODE | AT_CC_ACTIVE_HIGH);

154

Funciones
integradas

Archivos de ejemplo:
UNlso Ver:

Ninguna

unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay


(),unt_get_missing_pulse_delay (),unt_get_period (),at_get_phase_counter (), at_set_set_point
(),unt_get_set_point (), At_get_set_point_error (), at_enable_interRupts (),unt_disable_interrupts
(),unt_clear_interrupts (),unt_interrupt_active (),unt_set_compare_time (),unt_get_capture
(),unt_get_status (),SEtup_at ()

bit_clear ()
Syntax: bit_clear (var,bit)
parmetros:

VirginiarmamY un poco cualquier variable (cualquier valor-I)


poco yoEs un nmero 0- 31 que representa un nmero de bit, 0 es el bit menos significativo.

Devoluciones:
Funcin:

undefinere
Simplemente borra el bit especificado (0-7, 0-15 o 0-31) en la variable dada. El bit
menos significativo es 0. Esta funcin es el similar a: var & = ~ (1 << bit);

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

Nada
int x; x = 5;
bit_clear (x,
2);
// X es de 1

Archivos de ejemplo:
UNlso Ver:

ex_patg.c

bit_set (),bit_test ()

bit_set ()
Sintaxis:
parmetros:

Devoluciones:
Funcin:
0.

bit_set (var,bit)
VirginiarmamY una variable 8,16 o 32 bits (cualquier valor-I)
poco yoEs un nmero 0- 31 que representa un nmero de bit, 0 es el bit menos significativo.
Indefinido
Establece el bit especificado (0-7, 0-15 o 0-31) en la variable dada. El bit menos significativo es
This es la funcin similar a: var | = (1 << bits);
153

Funciones
integradas

Disponibilidad:

Todos los dispositivos

Se requiere:

Nada

Ejemplos:int x; x = 5; bit_set
(x, 3);
// X es ahora de 13 aos

example Archivos:

ex_patg.c

Ver tambin:

bti _clear (),bit_test ()

bit_test ()
Sintaxis:
parmetros:

VirginiaLue = bit_test (Virginiar,bit)


VirginiarmamY una variable 8,16 o 32 bits (cualquier valor-I)
poco yoEs un nmero 0- 31 que representa un nmero de bit, 0 es el bit menos
significativo.

Devoluciones:
Funcin:

0o1
Tests el bit especificado (o 0-7,0-15 0-31) en la variable dada. El bit menos significativo es 0.
Thifuncin s es mucho ms eficiente que, pero por lo dems similar a:
((Var y (1 << bits))! = 0)

Disponibilidad:

Todos los dispositivos

Se requiere:

Nada

Ejemplos:si (bit_test (x, 3) ||! bit_test (x, 1)) {


// Ya sea el bit 3 es 1 o el bit 1 es 0
}

si (datos! = 0)
for (i = 31;! bit_test (datos, i); i--);
// I ahora tiene el bit ms significativo de los datos
// Que se establece en un 1

example Archivos:

ex_patg.c

Ver tambin:

bti _clear (),bit_set ()

155

CCS C 10082015

brownout_enable ()
Sintaxis:
parmetros:
Devoluciones:
Funcin:

Disponibilidad:

Se requiere:

brownout_enable (valor)
VirginiaLue - Verdadero o falso
undefinere
Activar o desactivar la baja de voltaje controlado por software. Cadas de tensin har que
el PIC para restablecer si la tensin cae por debajo de un punto de referencia especfico.
This funcin slo est disponible en los PIC con una baja de voltaje controlado por
software. Esto tambin puede requerir un poco de configuracin / fusible especfico que se
fijar para la baja de voltaje para ser controlado por software.
Nada

Ejemplos:brownout_enable (TRUE);
example Archivos:

Ninguna

Ver tambin:

restart_cause ()

bsearch ()
Syntax: IP = bsearch (&llave, Base, num, ancho, comparar)
parmetros:

llave: Objeto para buscar


base: Puntero a la matriz de datos de
bsqueda num: Nmero de elementos
de datos de bsqueda width: Ancho de
elementos de datos de bsqueda
doompare: Funcin que compara dos elementos de datos de bsqueda

Devoluciones:

bsearch devuelve un puntero a una ocurrencia de clave en la cadena apuntada por


la base. Si no se encuentra la tecla, la funcin devuelve NULL. Si la matriz no est en
orden o contiene registros duplicados con claves idnticas, el resultado es impredecible.

Funcin:
Disponibilidad:
Se requiere:
Ejemplos:

Realiza una bsqueda binaria de un arreglo ordenado


Todos los dispositivos
#INCLUYE <stdlib.h>
nums int [5] = {1,2,3,4,5};
int compar (const void * arg1, arg2 const void *);
void main () {

156

Funciones
integradas
int * ip, clave;
= Clave 3;
ip = bsearch (y la llave, nums, 5, sizeof (int), compar);
}
int compar (const void * arg1, arg2 const void *) {
si (* (int *) arg1 <(* (int *) arg2) return -1
else if (* (int *) arg1 == (* (int *) arg2) devuelven
0 o regrese 1;
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

QSOrt ()

calloc ()
Syntax: ptr = calloc (nmem,tamao)
parmetros:

nmem yos un entero que representa el nmero de objetos miembro


size yos el nmero de bytes que se asignar a cada uno de ellos.

Devoluciones:
Funcin:

Un puntero a la memoria asignada, en su caso. De lo contrario devuelve null.


Thfuncin de correo calloc asigna espacio para un conjunto de objetos nmem cuyo tamao
se especifica por tamao. El espacio se inicializa a cero todos los bits.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <stdlibm.h>
int * FPR;
FPR = calloc (5,10);
// IPTR apuntar a un bloque de memoria de
// 50 bytes todo inicializan a 0.

Archivos de ejemplo:
UNlso Ver:

Ninguna

realloc (),gratis(),malloc()

ceil ()
Syntax: resultado = ceil (valor)
parmetros:

VirginiaLue yoEs un flotador

157

CCS C 10082015

Devoluciones:
Funcin:

Un flotador
Calcula el valor entero ms pequeo mayor que el argumento. CEIL (12.67) 13.00.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <math.h>
// Calcular el costo basado en el peso
redondeado
// Hasta el siguiente libra
costo = ceil (peso) * DollarsPerPound;

Archivos de ejemplo:
UNlso Ver:

Ninguna

piso()

clc1_setup_gate () clc2_setup_gate ()
clc3_setup_gate () clc4_setup_gate ()
Syntax:

clc1_setup_gate
(puerta,
modo);
clc2_setup_gate
(puerta,
modo);
clc3_setup_gate
(puerta,
modo);
clc4_setup_gate
(puerta,
modo);

Parmetros: Puerta - Selecciona qu puerta del mdulo configurable de la clula lgica (CLC)
para configurar los datos, el valor puede ser de 1 a 4.
metrooda - El modo de configurar la puerta especificada de datos del
mdulo de CLC en. Las opciones son:
CLC_GATE_AND
CLC_GATE_NAND
CLC_GATE_NOR
CLC_GATE_OR
CLC_GATE_CLEAR
CLC_GATE_SET
Devoluciones:
Funcin:
Disponibilidad:
Dev
oluci
ones
:
158

Indefinido
Establece la funcin lgica realizada en las entradas de la puerta de datos especificado.
On dispositivos con un mdulo de CLC.
Naciones UnidasDelawaremultado.

Funciones
integradas
Ejemplos:

clc1_setup_gate (1, CLC_GATE_AND);

159

CCS C 10082015

clc1_setup_gate (2, CLC_GATE_NAND);


clc1_setup_gate (3, CLC_GATE_CLEAR);
clc1_setup_gate (4, CLC_GATE_SET);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_clcx (),clcx_setup_input ()

clc1_setup_input () clc2_setup_input ()
clc3_setup_input () clc4_setup_input ()
Syntax:

clc1_setup_input
(entrada,seleccin);
clc2_setup_input(entrada,selecci
n);
clc3_setup_input
(entrada,seleccin);
clc4_setup_input
(entrada,seleccin);

Parmetros: entrada - Selecciona qu entrada del mdulo configurable de la clula lgica


(CLC) para la configuracin, el valor puede ser de 1 a 4.
SEleccin - La entrada real de la entrada especificada que en realidad est
conectado a las puertas de datos del mdulo de CLC. Las opciones son:
CLC_INPUT_0
CLC_INPUT_1
CLC_INPUT_2
CLC_INPUT_3
CLC_INPUT_4
CLC_INPUT_5
CLC_INPUT_6
CLC_INPUT_7
Devoluciones:
Funcin:

Disponibilidad:
Dev
oluci
ones
:
Ejemplos:

Indefinido.
Define la entrada para el nmero de entrada especificado que en realidad est
conectado a las cuatro puertas de datos del mdulo de CLC. Por favor,
consulte la tabla CLCx DATOS DE SELECCIN DE ENTRADA en la hoja de
datos del dispositivo para determinar cul de las selecciones anteriores
corresponde al pin de entrada real o perifrica del dispositivo.
On dispositivos con un mdulo de CLC.
Naciones UnidasDelawaremultado.

clc1_setup_input

(1,

CLC_INPUT_0);
clc1_setup_input
(2,
CLC_INPUT_1);
clc1_setup_input
(3,
CLC_INPUT_2);

160

Funciones
integradas
clc1_setup_input (4, CLC_INPUT_3);

Archivos de ejemplo:

Ninguna

161

CCS C 10082015

UNlso Ver:

SEtup_clcx (),clcx_setup_gate ()

clear_interrupt ()
Syntax: clear_interrupt (nivel)
Parmetros: nivel - Una constante definida en el archivo de devices.h
Devoluciones:
Funcin:

undefinere
Borra el indicador de interrupcin para el nivel dado. Esta funcin est diseada para su uso
con una interrupcin determinada, eliminando as el nivel global como un parmetro
posible. Algunos chips que han interrumpir el cambio de pines individuales permiten que el
pasador se puede especificar como INT_RA1.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

Nada
clear_interrupt (int_timer1);

Archivos de ejemplo:
UNlso Ver:

Ninguna

enable_interrupts () ,#INT ,Las interrupciones


general disable_interrupts (),enterrupt_actvie ()

clear_pwm1_interrupt () clear_pwm2_interrupt ()
clear_pwm3_interrupt () clear_pwm4_interrupt ()
clear_pwm5_interrupt () clear_pwm6_interrupt ()
Syntax:

clear_pwm1_interrupt
(interrupt)
Clear_pwm2_interrupt
(interrupt)
Clear_pwm3_interrupt
(interrupt)
Clear_pwm4_interrupt
(interrupt)
Clear_pwm5_interrupt
(interrupt)
Clear_pwm6_interrupt
(interrupt)

parmetros:
interrumpir - 8 bits constante o variable. Las constantes se definen en el archivo de
cabecera del dispositivo como:

162

PWM_PERIOD_INTERRUPT
PWM_DUTY_INTERRUPT

PWM_PHASE_INTERRUPT

Funciones
integradas

PWM_OFFSET_INTERRUPT

163

CCS C 10082015

Devoluciones:
Funcin:

indefinido.
Borra una de las interrupciones PWM anteriores, mltiples interrupciones se pueden
borrar OR'ing mltiples opciones a la vez.

Disponibilidad:

Los dispositivos con un mdulo de PWM de 16 bits.

Se requiere:
Ejemplos:

Nada
clear_pwm1_interrupt (PWM_PERIOD_INTERRUPT);
clear_pwm1_interrupt (PWM_PERIOD_INTERRUPT | PWM_DUTY_INTERRUPT);

Archivos de ejemplo:
UNlso Ver:

SEtup_pwm (),SEt_pwm_duty (),set_pwm_phase(), set_pwm_peRIOD (),SEt_pwm_offset


(),enable_pwm_interrumpir (), disable_pwm_interrupt (), pwm_interrupt_active ()

cog_status ()
Syntax: valor = cog_status ();
parmetros:

Ninguna

Devoluciones:
Funcin:

Value - el estado del mdulo COG


To determinar si un evento de cierre se produjo en el generador de salida complementaria
(COG) del
mdulo.

Disponibilidad:
Ejemplos:

Todos los dispositivos con un mdulo COG.


si (cog_status () == COG_AUTO_SHUTDOWN)
cog_restart
();

Archivos de ejemplo:
UNlso Ver:

164

Ninguna

SEtup_cog (),SEt_cog_dead_band (),SEt_cog_blanking (),set_cog_phase(),diente_reiniciar()

Funciones
integradas

cog_restart ()
Syntax: cog_restart ();
parmetros:

Ninguna

Devoluciones:
Funcin:

Nada
To reiniciar el mdulo complementario de salida del generador (COG) despus de un
apagado automtico evento se produce, cuando no se utiliza la opcin de reinicio
automtico del mdulo.

Disponibilidad:
Ejemplos:

Todos los dispositivos con un mdulo COG.


si (cog_status () == COG_AUTO_SHUTDOWN)
cog_restart
();

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_cog (),SEt_cog_dead_band (),SEt_cog_blanking (),set_cog_phase(),cog_status ()

crc_calc () crc_calc8 () crc_calc16 ()


Syntax:

Resultado = crc_calc (data, [ancho]);


Resultado = crc_calc (ptr, len, [ancho]);
Resultado = crc_calc8 (data, [ancho]);
Resultado = crc_calc8 (ptr, len, [ancho]);
Resultado = crc_calc16
// Igual que crc_calc ()
(datos,[anchura]);
Resultado
= crc_calc16 (ptr, len,
// Igual que crc_calc ()
[ancho]);
Parmetros: datos- Esta es una palabra doble, palabra o byte que necesita ser procesada utilizando
crc_calc16 (), o crc_calc8 ()
ptr- Es un puntero a una o ms palabras dobles, palabras o bytes de datos
len- Nmero de palabras dobles, palabras o bytes para procesar
llamadas de funcin para crc_calc16 (), o crc_calc8 ()
width- Parmetro opcional que se utiliza para especificar el nmero de bits de datos de
entrada para utilizar con las funciones de crc_calc16 (), y crc_calc8 ()
Si no se especifica, el valor predeterminado es el ancho del valor de retorno de la funcin, de
8 bits para crc_calc8 (
), 16 bits para crc_calc16 ()
Para dispositivos con un 16 bits para CRC de la anchura de entrada de bits de datos es el
mismo que el nmero de bits de retorno, crc_calc16 () y crc_calc8 8 bits ().
Devoluciones:
Funcin:

Devuelve el resultado del clculo CRC final.


This procesar una doble palabra de datos, palabra o byte o len double palabras, palabras o
165

CCS C 10082015
bytes de

166

Funciones
integradas
data con el motor de CRC.
Disponibilidad:

ONLy los dispositivos con construido en mdulo de CRC.

Se requiere:
Ejemplos:

Nada
datos Int16 [8];
Result = crc_calc (datos, 8);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_crc (); dorc_init ()

crc_init (modo)
Syntax: crc_init (daejrcito de reserva);
parmetros:

datos - Esta configuracin el valor inicial utilizado por CRC escritura registro de
desplazamiento. Por lo general, este registro se establece en 0x0000 para el inicio de un
nuevo clculo de la CRC.

Devoluciones:
Funcin:

undefinere
Configura el registro CRCWDAT con el valor inicial utilizado para el clculo de CRC.

Disponibilidad:

ONLy los dispositivos con construido en mdulo de CRC.

Se requiere:
Ejemplos:

Nada
crc_init (); // Inicia el acumulador de CRC a cabo a 0
crc_init (0xFEEE); // Inicia el acumulador de CRC a cabo a 0xFEEE

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_crc (), dorc_calc (),dorc_calc8 ()

cwg_status ()
Syntax: valor = cwg_status ();
parmetros:

Ninguna
167

CCS C 10082015

Devoluciones:
Funcin:

el estado del mdulo CWG


To determinar si un evento de cierre se produjo haciendo que el mdulo de auto-apagado

Disponibilidad:
Ejemplos:

On dispositivos con un mdulo de GTC.


si (cwg_status () == CWG_AUTO_SHUTDOWN)
cwg_restart ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_cwg (),cwg_reiniciar( )

cwg_restart ()
Syntax: cwg_restart ();
parmetros:

Ninguna

Devoluciones:
Funcin:

Nada
To reiniciar el mdulo GTC despus de un apagado automtico evento se produce,
cuando no se utiliza la opcin de auto-trama del mdulo.

Disponibilidad:
Ejemplos:

On dispositivos con un mdulo de GTC.


si (cwg_status () == CWG_AUTO_SHUTDOWN)
cwg_restart ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_cwg (),cwg_status ()

dac_write ()
Syntax: dac_write (valor)
Parmetros: Valor: Valor entero de 8 bits que debe escribirse en el mdulo DAC
Devoluciones:

168

undefinere

Funciones
integradas
Funcin:

Thila funcin s escribir un nmero entero de 8 bits para el canal DAC especificado.

Disponibilidad:
analgico.

ONLy est disponible en dispositivos con construido en convertidores de digital a

Se requiere:
Ejemplos:

Nada
int i = 0;
setup_dac (DAC_VDD | DAC_OUTPUT);
while (1) {
i ++;
dac_write (i);
}

UNlso Ver:
SEtup_dac (),DAC Informacin general, Consulte el archivo de cabecera para el
dispositivo seleccionado

delay_cycles ()
Syntax: (delay_cyclescontar)
parmetros:

doporte - Una constante 1-255

Devoluciones:
Funcin:

undefinere
Crea cdigo para realizar un retraso de la cantidad especificada de los relojes de
instrucciones (1-255). Un reloj de instruccin es igual a cuatro relojes de oscilador.
Thtiempo de retardo de correo puede ser ms largo que el solicitado en caso de
una interrupcin es atendida durante la demora. El tiempo pasado en el ISR no
cuenta para el tiempo de retardo.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

Nada
delay_cycles (1); // Igual que un NOP
delay_cycles (25); // A los 20 mhz un retraso 5us

Archivos de ejemplo:
UNlso Ver:

ex_cust.c

delay_us(),Delay_ms()

Delay_ms ()
Syntax: (Delay_mshora)
169

CCS C 10082015

parmetros:

hora - Una variable 0-65535 (Int16) o una constante 0-65535


Nota: Las versiones anteriores del compilador ignoran el byte superior de un Int16,
ahora el byte superior afecta el tiempo.

Devoluciones:
Funcin:

undefinere
Thifuncin s crear cdigo para realizar un retraso de la longitud especificada. El tiempo se
especifica en milisegundos. Esta funcin se activa mediante la ejecucin de un nmero
preciso de instrucciones para hacer que el retardo requerido. No utiliza ningn
temporizador. Si se habilitan las interrupciones del tiempo pasado en una rutina de
interrupcin no se cuenta en el momento.
Thtiempo de retardo de correo puede ser ms largo que el solicitado en caso de
una interrupcin es atendida durante la demora. El tiempo pasado en el ISR no
cuenta para el tiempo de retardo.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#Usar retraso
#use retardo (reloj = 20000000)
Delay_ms (2);

Delay_ms (1000); delay_seconds void (int


n) {for (; n, n = 0)
}

Archivos de ejemplo:
UNlso Ver:

ex_sqw.do

delay_us(),delay_cycles(),#USE DEMORA

delay_us ()
Syntax: delay_us (hora)
parmetros:

hora - Una variable 0-65535 (Int16) o una constante 0-65535


Nota: Las versiones anteriores del compilador ignoran el byte superior de un Int16,
ahora el byte superior afecta el tiempo.

Devoluciones:
Funcin:

170

undefinere
Crea cdigo para realizar un retraso de la longitud especificada. El tiempo se especifica en
microsegundos. retrasos ms cortos sern de cdigo en lnea y los retrasos ms largos y
los retrasos variables son llamadas a una funcin. Esta funcin se activa mediante la
ejecucin de un nmero preciso de instrucciones para hacer que el retardo requerido. No
utiliza ningn temporizador. Si se habilitan las interrupciones del tiempo

Funciones
integradas
spent en una rutina de interrupcin no se cuenta en el momento.
Thtiempo de retardo de correo puede ser ms largo que el solicitado en caso de
una interrupcin es atendida durante la demora. El tiempo pasado en el ISR no
cuenta para el tiempo de retardo.
Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#Usar retraso
#use retardo (reloj = 20000000)
do {output_high
(PIN_B0); delay_us
(deber); output_low
(PIN_B0); delay_us
(perodo de servicio);
} While (true);

Archivos de ejemplo:
UNlso Ver:

ex_sqw.do

Delay_ms(),delay_cycles(),#Usar retraso

disable_interrupts ()
Syntax: (disable_interruptsnivel)
parmetros:
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

nivel - Una constante definida en los dispositivos .h archivo


undefinere
Desactiva la interrupcin en el nivel dado. El nivel global no va a desactivar cualquiera
de las alarmas especficas, pero impedir que cualquiera de las interrupciones
especficas, previamente habilitada para ser activo. niveles especficos vlidos son los
mismos que se utilizan en #INT_xxx y se enumeran en los dispositivos .h archivo.
GLOBAL tambin desactivar las interrupciones perifricas en dispositivos que tienen
yot. Tenga en cuenta que no es necesario deshabilitar las interrupciones en el interior de
una rutina de servicio de interrupcin ya que las interrupciones se deshabilitan
automticamente. Algunos chips que han interrumpir el cambio de
individual Espigas permiten que el pasador se puede especificar como INT_RA1.
Dispositivo con interrupciones (PCM y PCH)
En caso de tener un #INT_xxxx, las constantes se define en los dispositivos .h archivo.
disable_interrupts (global); // Todas las interrupciones OFF
disable_interrupts (INT_RDA); // RS232 OFF
enable_interrupts (ADC_DONE);
enable_interrupts (RB_CHANGE);
// stos permiten las interrupciones
// Pero como el GLOBAL que se desactiva

171

CCS C 10082015

// No se activan hasta que el siguiente


// Declaracin:
enable_interrupts (global);

Archivos de ejemplo:
UNlso Ver:

ex_sisR. C,ex_stwt.c

enable_interrupts (),CLEAr_interrupt (), #INT_xxxx,Las interrupciones general,enterrupt_active ()

disable_pwm1_interrupt ( ) Disable_pwm2_interrupt ()
disable_pwm3_interrupt () disable_pwm4_interrupt ()
disable_pwm5_interrupt () disable_pwm6_interrupt ()
Syntax:

disable_pwm1_interrupt
(interrupt)
Disable_pwm2_interrupt (interrupt)
Disable_pwm3_interrupt (interrupt)
Disable_pwm4_interrupt (interrupt)
Disable_pwm5_interrupt (interrupt)
Disable_pwm6_interrupt (interrupt)

parmetros:
interrumpir - 8 bits constante o variable. Las constantes se definen en el archivo de
cabecera del dispositivo como:

Devoluciones:
Funcin:

PWM_DUTY_INTERRUPT
PWM_PHASE_INTERRUPT
PWM_OFFSET_INTERRUPT

indefinido.
Desactiva una de las interrupciones PWM anteriores, mltiples interrupciones pueden
estar desactivadas por OR'ing mltiples opciones a la vez.

Disponibilidad:

Los dispositivos con un mdulo de PWM de 16 bits.

Se requiere:
Ejemplos:

PWM_PERIOD_INTERRUPT

Nada
disable_pwm1_interrupt (PWM_PERIOD_INTERRUPT);
disable_pwm1_interrupt (PWM_PERIOD_INTERRUPT | PWM_DUTY_INTERRUPT);

Archivos de ejemplo:
UNlso Ver:

172

SEtup_pwm (), set_pwm_duty (), set_pwm_phase (),set_pwm_peRIOD (),


SEt_pwm_offset (),enable_pwm_interrumpir (), clear_pwm_interrumpir (),
pwm_interrupt_active ()

Funciones
integradas

div () ldiv ()
Syntax: idiv = div (num,denom)
ldiv = ldiv (LNUM,ldenom)
parmetros:

num unredenom Arkansase enteros con signo.


num yos el numerador y guaridaom yos el denominador.
LNUM unreldenom unre largos firmados
LNUM yos el numerador y ldenom yos el denominador.

Devoluciones:

idiv es una estructura del tipo div_t y lidiv es una estructura del tipo ldiv_t. La funcin
div devuelve una estructura de tipo div_t, que comprende tanto el cociente y el resto. el
ldiv
funcin devuelve una estructura del tipo ldiv_t, que comprende tanto el cociente y el resto.

Funcin:

The div y la funcin ldiv calcula el cociente y el resto de la divisin del numerador entre el
denominador. Si la divisin es inexacta, el cociente resultante es el nmero entero o largo
de menor magnitud que es la ms cercana al cociente algebraico. Si el resultado no puede
ser representado, el comportamiento es indefinido; de lo contrario quot * denom (ldenom) +
rem sern equivalentes a num (LNUM).

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <stdlib.h>
div_t idiv;
lidiv ldiv_t;
idiv = div
(3,2);
// Idiv contendr quot y rem = 1 = 1
lidiv = ldiv (300,250);
// Lidiv contendr lidiv.quot = 1 y = 50 lidiv.rem

Archivos de ejemplo:
UNlso Ver:

Ninguna

Ninguna

enable_interrupts ()
Syntax: (enable_interruptsnivel)
parmetros:
Devoluciones:
Funcin:

nivel yos una constante definida en los dispositivos *.marido archivo.


indefinido.
This funcin permite la interrupcin en el nivel dado. Un procedimiento de interrupcin
debera haberse definido para la interrupcin indicada.
The nivel global no permitir que ninguna de las interrupciones especficas, pero permitir
que ninguna de las interrupciones especificadas previamente habilitados para convertirse
173

CCS C 10082015
en activo. Algunos chips que tienen una interrupcin

174

Funciones
integradas
on el cambio de pines individuales de todo el pasador se pueden definir como INT_RA1.
Para interrupciones que utilizan la deteccin de bordes para disparar, se puede configurar
en las enable_interrupts (funcin) sin hacer una llamada independiente a la funcin
set_int_edge ().
Habilitacin de alarmas no se borra el indicador de interrupcin si haba una espera de
interrupcin antes de la llamada. Utilice la funcin clear_interrupt () para borrar
interrupciones pendientes antes de la llamada a enable_interrupts () para descartar las
interrupciones anteriores.
Disponibilidad:

Los dispositivos con interrupciones.

Se requiere:
dispositivos *.marido

En caso de tener un #INT_XXXX para definir el ISR, y las constantes se definen en los
archivo.

Ejemplos:

enable_interrupts (global);
enable_interrupts (INT_TIMER0);
enable_interrupts (INT_EXT_H2L);

Archivos de ejemplo:
UNlso Ver:

ex_sisR. C,ex_stwt.c

disabilnterrupciones e (),CLEAr_interrupt (), ext_int_edge (),#INT_xxxx,Las


interrupciones general,enterrupt_active ()

enable_pwm1_interrupt ( ) Enable_pwm2_interrupt ()
enable_pwm3_interrupt () enable_pwm4_interrupt ()
enable_pwm5_interrupt () enable_pwm6_interrupt ()
Syntax:

enable_pwm1_interrupt
(enterrumpir)
Enable_pwm2_interrupt
(enterrumpir)
Enable_pwm3_interrupt
(enterrumpir)
Enable_pwm4_interrupt
(enterrumpir)
Enable_pwm5_interrupt
(enterrumpir)
Enable_pwm6_interrupt
(enterrumpir)

parmetros:
interrumpir - 8 bits constante o variable. Las constantes se definen en el archivo de
cabecera del dispositivo como:

Devoluciones:
Funcin:

PWM_PERIOD_INTERRUPT
PWM_DUTY_INTERRUPT
PWM_PHASE_INTERRUPT
PWM_OFFSET_INTERRUPT

indefinido.
Permite a una de las interrupciones PWM anteriores, mltiples interrupciones se pueden
activar por OR'ing mltiples opciones a la vez. Para la interrupcin que se produzca, los
175

CCS C 10082015
PWMx generales interrumpen todava tiene que ser activado y una rutina de servicio de
interrupcin todava tiene que ser creado.
Disponibilidad:
Se requiere:

176

Los dispositivos con un mdulo de PWM de 16 bits.


Nada

Funciones
integradas

Ejemplos:

enable_pwm1_interrupt (PWM_PERIOD_INTERRUPT);
enable_pwm1_interrupt (PWM_PERIOD_INTERRUPT | PWM_DUTY_INTERRUPT);

Archivos de ejemplo:
UNlso Ver:

SEtup_pwm (), set_pwm_duty (),set_pwm_phase(), set_pwm_peRIOD (),SEt_pwm_offset


(),disable_pwm_interrupt (), clear_pwm_interrupt (), pwm_interrupt_active ()

erase_eeprom ()
Syntax: erase_eeprom (direccin);
parmetros:

aadirO prima es de 8 bits en partes de PCB.

Devoluciones:
Funcin:

undefinere
This va a borrar una fila de la EEPROM o memoria flash de datos.

Disponibilidad:

dispositivos para tarjeta con memoria EEPROM como el 12F519

Se requiere:
Ejemplos:

Nada
erase_eeprom (0); // Borrar la primera fila de la EEPROM (8 bytes)

Archivos de ejemplo:
UNlso Ver:
Eeprom

Ninguna

wEEPROM programa de rito (), Escribir en la memoria de programa (), Programa general

erase_program_eeprom ( )
Syntax: erase_program_eeprom (aadirO prima);
parmetros:

Devoluciones:
Funcin:

unddress yoS 16 bits en partes PCM y 32 bits en partes PCH. Los bits menos
significativos pueden ser ignorados.
undefinere
Borra bytes FLASH_ERASE_SIZE a 0xFFFF en la memoria del programa.
FLASH_ERASE_SIZE vara en funcin de la pieza. Por ejemplo, si es de 64 bytes a
continuacin, los 6 bits menos significativos de la direccin se ignora.

177

CCS C 10082015

Ver write_program_memory () para obtener ms informacin sobre el acceso de memoria


de programa.
Disponibilidad:

ONLY los dispositivos que permiten escribe en la memoria del programa.

Se requiere:
Ejemplos:

Nada
for (i = 0x1000; i <= 0x1FFF; i + = getenv ( "FLASH_ERASE_SIZE"))
erase_program_memory (i);

Archivos de ejemplo:
UNlso Ver:
Eeprom

Ninguna

wEEPROM programa de rito (), Escribir en la memoria de programa (), Programa general

exp ()
Syntax: resultado = exp (valor)
parmetros:

VirginiaLue yoEs un flotador

Devoluciones:
Funcin:

Un flotador
Calcula la funcin exponencial del argumento. Este es el correo a la potencia del valor
donde e es la base de los logaritmos naturales. exp (1) es 2,7182818.
Nota sobre el control
de errores:
Si se incluye "errno.h", entonces los errores de dominio y el rango se almacenan en la
variable errno. El usuario puede comprobar el valor en errno para ver si se ha producido
un error e imprimir el error utilizando la funcin perror.
se produce error en la distancia en el siguiente caso:
exp: Cuando el argumento es demasiado grande

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <math.h>
// Calcular xa la potencia de y
x_power_y = exp (y * log (x));

Archivos de ejemplo:
UNlso Ver:

178

Ninguna

pow(),Iniciar sesin(),log10()

Funciones
integradas

ext_int_edge ()
Syntax: ext_int_edge (souRCE,borde)
parmetros:

source yos una constante de 0,1 o 2 para la PIC18XXX y 0 de otro modo.


Fuente es opcional y por defecto a 0.
miDGE yoS A H_TO_L constante o L_TO_H en representacin de "mayor a menor" y
"abajo hacia arriba"

Devoluciones:
Funcin:
L_TO_H

undefinere
Determina cuando la interrupcin externa se acte en consecuencia. El borde puede ser o
H_TO_L para especificar el flanco ascendente o descendente.

Disponibilidad:

ONLdispositivos de Y con interrupciones (PCM y PCH)

Se requiere:
Ejemplos:

Las constantes son dispositivos en los archivos .h


ext_int_edge (2, L_TO_H); // Configurar
ext_int_edge PIC18 EXT2 (H_TO_L); // Establece
EXT

Archivos de ejemplo:
UNlso Ver:

ex_wakup.do

#EN EL TEXTO ,enable_interrupts () ,disable_interrupts () ,Enterrupts general

(FABS)
Syntax: resultado = fbricas de (valor)
parmetros:

VirginiaLue yoEs un flotador

Devoluciones:
Funcin:

resultado es un flotador
Thfuncin e FABS calcula el valor absoluto de un flotador

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <math.h>
flotar resultado;
Resultado = fbricas de (-40.0)
// Resultado es 40,0

Archivos de ejemplo:
UNlso Ver:

Ninguna

abdominales(),laboratorios()

179

CCS C 10082015

getc () getch () getchar () fgetc ()


Syntax: valor = getc ()
VirginiaLue = fgetc (sTREAM)
VirginiaLue = getch ()
VirginiaLue = getchar ()
parmetros:

sTREAM yos un identificador de flujo (un byte constante)

Devoluciones:
Funcin:

Un carcter de 8 bits
Thifuncin s espera a que un carcter a entrar sobre el pasador de RCV RS232 y devuelve
el carcter. Si no desea colgar para siempre a la espera de una llamada entrante uso de
caracteres kbhit () para comprobar si existe un carcter disponible. Si se utiliza el hardware
puede amortiguar 3 caracteres incorporado un USART lo contrario GETC debe estar activa
mientras que el personaje est siendo recibida por el PIC.
Si se utiliza fgetc () a continuacin, se utiliza la corriente especificada en getc () por defecto
es STDIN (la ltima
USO RS232).

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#RS232 USO
printf ( "Continuar (S, N)?");
do {
answer = getch ();
} While (answer = 'Y' && responder = 'N'!);

RS232 #Utilice (baudios = 9600, XMIT = pin_c6,

VN = pin_c7, flujo =
HOSTPC)
#use RS232 (baudios = 1200, XMIT =
pin_b1, VN = pin_b0,
flujo = GPS)
RS232 #Utilice (baudios = 9600, XMIT = pin_b3,
flujo =
DEBUG)
... While
(true) {
c = fgetc (GPS);
fputc (c,
HOSTPC); si (==
c 13)
fprintf (DEBUG, "Tiene un CR \ r \ n");
}

Archivos de ejemplo:
UNlso Ver:

180

ex_stwt.c

putc (), kbhit (),printf (),#RS232 USO, Input.c, RS232 E / S Descripcin general

Funciones
integradas

piso( )
Syntax: resultado = piso (valor)
parmetros:

VirginiaLue yoEs un flotador

Devoluciones:
Funcin:

resultado es un flotador
Calcula el valor entero ms grande no es mayor que el argumento. Piso (12.67) 12.00.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <math.h>
// Encuentra la parte fraccionaria de un valor
frac = valor - baja (valor);

Archivos de ejemplo:
UNlso Ver:

Ninguna

hacertecho()

HOQF ()
Syntax: resultado = HOQF (val1,val2)
parmetros:

Virginial1 yoEs un flotador


Virginial2 yoEs un flotador

Devoluciones:
Funcin:

resultado es un flotador
Devuelve el residuo de punto flotante de val1 / val2. Devuelve el valor de val1 - i * val2
para algn entero "i" de tal manera que, si val2 es distinto de cero, el resultado tiene el
mismo signo que val1 y magnitud menor que la magnitud de val2.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <math.h>
flotar resultado;
resultado = HOQF (3,2);
// Resultado es 1

Archivos de ejemplo:
UNlso Ver:

Ninguna

Ninguna

181

CCS C 10082015

gratis( )
Syntax: gratis (ptr)
parmetros:

ptr yos un puntero antes de regresar por el calloc, malloc o realloc.

Devoluciones:
Funcin:

Sin valor
The funcin libre hace que el espacio apuntado por ptr la que se cancela la asignacin,
que se pone a disposicin para su posterior distribucin. Si ptr es un puntero nulo,
ninguna accin se produce. Si el PTR no coincide con un puntero anteriormente
devuelto por el calloc, malloc o realloc, o si el espacio se ha desasignado por una
llamada a la funcin libre o realloc, el comportamiento no est definido.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <stdlibm.h>
int * FPR; FPR =
malloc (10);
libre (FPR)
// FPR se desasignar

Archivos de ejemplo:
UNlso Ver:

Ninguna

realloc (),malloc(),calloc()

frexp ()
Syntax: resultado = frexp (valor, yexp);
parmetros:

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:

182

VirginiaLue yoEs un flotador


expyos un int firmado.
resultado es un flotador
Thfuncin de correo frexp rompe un nmero de punto flotante en una fraccin normalizada y
una potencia entera de 2. Se almacena el nmero entero en el exp int objeto firmado. El
resultado es en el intervalo [1/2 a 1) o cero, de tal manera que el valor es veces muestra 2
elevado a exp poder. Si el valor es cero, entonces las dos partes son cero.
Todos los dispositivos.
#INCLUYE <math.h>

Funciones
integradas
Ejemplos:

flotar resultado;
firmado int exp;
resultado = frexp
(0.5, y exp);
// Resultado es 0,5 y exp es 0

Archivos de ejemplo:
UNlso Ver:

Ninguna

ldexp(),exp(),Iniciar sesin(),log10(),modF()

get_capture ()
Syntax: valor = get_capture (incgnita)
parmetros:

incgnitadefinirs qu mdulo CCP para leer.

Devoluciones:
Funcin:

Un valor del temporizador de 16 bits.


This funcin obtiene el ltimo tiempo de captura del mdulo CCP se indica

Disponibilidad:

ONLy est disponible en dispositivos con mdulos de captura de entrada

Se requiere:

Ninguna

Ejemplos:
Archivos de ejemplo:
UNlso Ver:

ex_ccpmp.do

SEtup_ccpx ()

get_capture_event ()
Syntax: resultado = get_capture_event ([sTREAM]);
Parmetros: Secuencia - Parmetro opcional que especifica la corriente se define en CAPTURA #Utilice.
Devoluciones:
Funcin:
Disponibilidad:

TRUE si se ha producido un evento de captura, de lo contrario.


To determinar si se ha producido un evento de captura.
Todos los dispositivos.

183

CCS C 10082015

Se requiere:
Ejemplos:

#CAPTURA DE USO
#USO DE CAPTURA (INPUT = PIN_C2, CAPTURE_RISING, TIMER = 1, el ms rpido)
yof (get_capture_event ())
resultado = get_capture_time ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

#use_captura,get_capture_time ()

get_capture_time ()
Syntax: resultado = get_capture_time ([stream]);

parmetros:

sTREAM - parmetro opcional que especifica la corriente se define en CAPTURA #Utilice.

Devoluciones:
Funcin:

Un valor Int16 que representa el ltimo tiempo de captura.


To conseguir la ltima hora de captura.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#CAPTURA DE USO
#Utilice CAPTURA (INPUT = PIN_C2, CAPTURE_RISING, TIMER = 1, el ms rpido)
resultado = get_capture_time ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

#use_captura,get_capture_event ()

get_capture32 ()
Syntax: resultado = get_capture32 (incgnita,[Espere]);
Parmetros: x yos 1-16 y define qu mdulos de amortiguamiento resultado de captura de entrada para leer.
Washingtoneso yos un parmetro opcional que especifica si el compilador debe leer
el resultado ms antiguo en el desgraciado o el siguiente resultado para entrar en el
bfer.
Devoluciones:

184

Un valor del temporizador de 32 bits

Funciones
integradas
Funcin:

Si Washingtoneso yoes verdad, los valores de captura actuales en la memoria intermedia


resultado se borran, y el siguiente resultado para ser enviados a la memoria intermedia se
devuelve. Si Washingtoneso yos falsa, se devuelve el valor predeterminado, el primer
valor actualmente en el bfer. Sin embargo, la memoria intermedia slo se llevar a cabo
cuatro resultados, mientras
WAIting para que puedan leerse, por lo que si get_capture32 no est siendo llamado para
cada evento de captura.
whenorteWAItyoes falsa, la memoria intermedia se llene de los valores de captura viejos y
los nuevos resultados ser
Lost.

Disponibilidad:

ONLdispositivos de Y con un mdulo de captura de entrada de 32 bits

Se requiere:
Ejemplos:

Nada
setup_timer2 (TMR_INTERNAL | TMR_DIV_BY_1 | TMR_32_BIT);
setup_capture (1, CAPTURE_FE | CAPTURE_TIMER2 |
CAPTURE_32_BIT); while (true) {
timerValue = get_capture32 (1, TRUE);
printf ( "Captura 1 se produjo en:% lu", timerValue);
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_capture (), setup_compare (), get_captura (), Capturar la entrada general

get_hspwm_capture ()
Syntax: resultado = get_hspwm_capture (unit);
Parmetros: unidad - La unidad de alta velocidad PWM para ajustar.
Devoluciones:
Funcin:

IN16 valor sin signo que representa el valor base de tiempo de captura de PWM.
Gets el valor base de tiempo de PWM capturado desde la deteccin del borde de ataque de
la corriente de entrada lmite.

Disponibilidad:
velocidad

ONLy en los dispositivos con un sistema incorporado en el mdulo de PWM de alta


(DsPIC33FJxxGSxxx, dsPIC33EPxxxMUxxx, dispositivos
dsPIC33EPxxxMCxxx, y dsPIC33EVxxxGMxxx)

Se requiere:
Ejemplos:

Ninguna
Resultado = get_hspwm_capture (1);

Archivos de ejemplo:

Ninguna
185

CCS C 10082015
UNlso Ver:

186

SEtup_hspwm_unit (),SEt_hspwm_phase (), SEt_hspwm_duty (),set_hspwm_event (),

Funciones
integradas
SEtup_hspwm_blanking
(),setup_hspwm_desencadenar(),SEt_hspwm_override
(),SEtup_hspwm_chop_clock (), setup_hspwm_unit_chop_clock ()
setup_hspwm (),SEtup_hspwm_secondary ()

get_nco_accumulator ()
Syntax: valor = get_nco_accumulator ();
parmetros:

ninguna

Devoluciones:

current valor del acumulador.

Disponibilidad:
Ejemplos:

On dispositivos con un mdulo de NCO.


valor = get_nco_accumulator ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_nco (),set_nco_inc_value(),get_nco_inc_value ()

get_nco_inc_value ()
Syntax: valor = get_nco_inc_value ();
parmetros:

Ninguna

Devoluciones:

- Valor actual establecido en los registros de incremento.

Disponibilidad:
Ejemplos:

On dispositivos con un mdulo de NCO.


valor = get_nco_inc_value ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_nco (),set_nco_inc_value(),get_nco_accumulator ()

187

CCS C 10082015

get_ticks ()
Syntax: valor = get_ticks([corriente]);
sTREAM - Parmetro opcional que especifica la corriente se define en #Utilice TIMER.
parmetros:
Devoluciones:
Funcin:

- Un entero de 8, 16 o 32 bits. (INT8, Int16 o Int32)


Devuelve el valor de seal actual del contador de tiempo de la garrapata. El tamao
devuelto depende del tamao del temporizador de garrapata.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#Utilice el temporizador (opciones)


#Utilice TIMER (TEMPORIZADOR = 1, TICK = 1ms, BITS = 16, NOISR)
void main (void) {
current_tick Int16 sin firmar;
current_tick = get_ticks ();
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

#Utilizar Contador,SEt_ticks ()

get_timerA ()
Syntax: valor = get_timerA ();
parmetros:

ninguna

Devoluciones:

The valor actual del contador de tiempo como un int8

Funcin:
Devuelve el valor actual del temporizador. Todos los temporizadores cuentan hacia arriba.
Cuando un temporizador alcanza el
maximum valor que le dar la vuelta a 0 y continuar recuento (254, 255, 0, 1, 2, ...).
Disponibilidad:

This funcin slo est disponible en dispositivos con temporizador Un hardware.

Se requiere:
Ejemplos:

Nada
set_timerA (0);
mientras que (Timera <200);

Archivos de ejemplo:
UNlso Ver:

188

ninguna

SEt_timerA (),SEtup_timer_A (),HorarA general

Funciones
integradas

get_timerB ()
Syntax: valor = get_timerB ();
parmetros:

ninguna

Devoluciones:
Funcin:

The valor actual del contador de tiempo como un int8


Devuelve el valor actual del temporizador. Todos los temporizadores cuentan hacia
arriba. Cuando un temporizador alcanza el valor mximo se le dar la vuelta a 0 y
continuar recuento (254, 255, 0, 1, 2, ...).

Disponibilidad:

This funcin slo est disponible en dispositivos con hardware de temporizador B.

Se requiere:
Ejemplos:

Nada
set_timerB (0);
while (timerB <200);

Archivos de ejemplo:
UNlso Ver:

ninguna

SEt_timerB (),SEtup_timer_B (),HorarB general

get_timerx ()
Syntax: valor = get_timer0 () Lo mismo que: valor = get_rtcc ()
VirginiaLue
=
get_timer1 () =
valor get_timer2 ()
= valor get_timer3
()
VirginiaLue
=
get_timer4) valor
(= get_timer5 () =
valor get_timer6 ()
= valor get_timer7
()
=
valor
get_timer8 ()
VirginiaLue
=
get_timer10 ()
VirginiaLue
=
get_timer12 ()
parmetros:

Ninguna

Devoluciones:

Horars 1, 3, 5 y 7 de retorno de 16 bits int.


Horars 2, 4, 6, 8, 10 y 12 vuelven un entero de 8 bits.
Horar 0 (Tambin conocido como RTCC) devuelve un int 8 bits, excepto en el PIC18XXX
donde se devuelve un int de 16 bits.

Funcin:

Devuelve el valor de recuento de un reloj de tiempo real / contador. RTCC y Timer0 son los
mismos. Todos los temporizadores cuentan hacia arriba. Cuando un temporizador alcanza
189

CCS C 10082015
el valor mximo se le dar la vuelta a 0 y continuar recuento (254, 255, 0, 1, 2 ...).
Disponibilidad:

190

Horar 0 - Todos los dispositivos


Horars 1 y 2 - la mayora, pero no todos los dispositivos PCM

Funciones
integradas
Horar 3, 5 y 7 - Algunos dispositivos PIC18 y PIC16 mejoradas
Horar 4,6,8,10 y 12 Algunos dispositivos PIC18 y PIC16 mejoradas
Se requiere:
Ejemplos:

Nada
set_timer0 (0);
while (get_timer0 () <200);

Archivos de ejemplo:
UNlso Ver:

ex_stwt.c

SEt_timerx () ,Horar0 general ,Horar1 general ,Horar2 general ,HoraR5 general

get_tris_x ()
Syntax: valor = get_tris_A (); valor =
get_tris_B (); valor =
get_tris_C (); valor =
get_tris_D (); valor =
get_tris_E (); valor =
get_tris_F (); valor =
get_tris_G (); valor =
get_tris_H (); valor =
get_tris_J (); valor =
get_tris_K ()
parmetros:

Ninguna

Devoluciones:
Funcin:

ent16, el valor del registro TRIS


Devuelve el valor del registro TRIS del puerto A, B, C, D, E, F, G, H, J o K.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Nada
tris_a = GET_TRIS_A ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

input (),Output_low (),UNEDtput_high ()

getenv ()
Syntax: valor = getenv (csTring);

191

CCS C 10082015

parmetros:

csTring es una cadena constante con una palabra clave reconocida

Devoluciones:
Funcin:

Un nmero constante, una constante de cadena o 0


This funcin obtiene informacin sobre el entorno de ejecucin. Las siguientes son las
palabras clave reconocidas. Esta funcin devuelve una constante 0 si la palabra clave no
se entiende.
FUSE_SET: fffff Devuelve 1 si est activado el fusible fffff
FUSE_VALID: fffff

Devuelve 1 si fffff fusible es vlida

INT: iiiii

Devuelve 1 si la interrupcin es vlida iiiii

CARN DE IDENTIDAD
(establecido por #ID)
DISPOSITIVO
"PIC16C74")

Devuelve la cadena del nombre del dispositivo (como

RELOJ
VERSIN

Devuelve el MPU FOSC


Devuelve la versin del compilador como un flotador

VERSION_STRING

Devuelve la versin del compilador como una cadena

PROGRAM_MEMORY
palabras)

Devuelve el tamao de la memoria para el cdigo (en

APILAR
RASGUO

Devuelve el tamao de la pila


Devuelve el inicio de la zona cero compilador

DATA_EEPROM

Devuelve el nmero de bytes de datos en la EEPROM

EEPROM_ADDRESS

Devuelve la direccin del inicio de la EEPROM. 0 si


no es compatible con el dispositivo.

READ_PROGRAM

Devuelve un 1 si la memoria de cdigo puede ser ledo

ANUNCIOC_CHANNELS

Devuelve el nmero de canales A / D

ANUNCIOC_RESOLUTION
READ_ADC ()

Devuelve el nmero de bits de regresar de

CIE

Devuelve un 1 si esto est siendo compilado para un ICD

SPI

Devuelve un 1 si el dispositivo tiene SPI

USB

Devuelve un 1 si el dispositivo tiene USB

PODER

192

Devuelve el ID de dispositivo

Devuelve un 1 si el dispositivo tiene la CAN

I2C_SLAVE

Devuelve un 1 si el dispositivo tiene I2C esclavo H / W

I2C_MASTER

Devuelve un 1 si el dispositivo tiene I2C maestro H / W

Funciones
integradas
PSP

Devuelve un 1 si el dispositivo tiene PSP

COMP

Devuelve un 1 si el dispositivo tiene un comparador

VREF
voltaje

Devuelve un 1 si el dispositivo tiene una referencia de

LCD
W

Devuelve un 1 si el dispositivo tiene pantalla LCD directa H /

UART

Devuelve el nmero de H / W UART

AUARTE

Devuelve 1 si el dispositivo tiene una UART ADV

CCPx

Devuelve un 1 si el dispositivo tiene el nmero CCP x

TIMERx
temporizador x

Devuelve un 1 si el dispositivo tiene nmero de

FLASH_WRITE_SIZE
flash

Ms pequeo nmero de bytes que puede escribirse en

FLASH_ERASE_SIZE
FLASH

Ms pequeo nmero de bytes que puede ser borrada en

BYTES_PER_ADDRESS

Devuelve el nmero de bytes en una ubicacin de direccin

BITS_PER_INSTRUCTION

Devuelve el tamao de una instruccin en bits

RAM

Devuelve el nmero de bytes de memoria RAM


disponibles para el dispositivo.

SFR: nombre
especificado.

Devuelve la direccin del registro de archivo especial


Thformato de salida e se puede utilizar con la #bit
comando preprocesador. nombre debe coincidir con
denominacin de SFR
tr objetivo PIC (ejemplo: ESTADO, INTCON, TXREG,
RCREG, etc)

BIT: nombre
especial especificada

Devuelve la direccin de bit del registro de archivo


bit. El formato de salida estar en "Direccin: bit", que
puede ser
utilizard #byte con el comando de preprocesador.
nombre debe coincidir con denominacin de SFR.bit el
PIC objetivo (ejemplo: C, Z, GIE, TMR0IF, etc)

SFR_VALID: nombre

Devuelve VERDADERO si el nombre de archivo


especial de registro especificado no es vlido y existe
para el PIC objetivo (ejemplo:
geTENV ( "SFR_VALID: INTCON"))

185

CCS C 10082015

BIT_VALID: nombre

Devuelve VERDADERO si el bit de registro de


archivo especial especificado no es vlido y existe
para el PIC objetivo (ejemplo: getenv ( "BIT_VALID:
TMR0IF"))

PIN: PB
(como A2)

Devuelve 1 si el PP es una entrada / salida vlida PIN

UARTx_RX

Devuelve UARTxPin (como PINxC7)

UARTx_TX

Devuelve UARTxPin (como PINxC6)

SPIx_DI

Devuelve SPIxDI Pin

SPIxDO
SPIxCLK

Devuelve SPIxDO Pin


Devuelve SPIxCLK Pin

ETHERNET

Devuelve 1 si el dispositivo es compatible con Ethernet

QEI
DAC

Devuelve 1 si el dispositivo tiene QEI


Devuelve 1 si el dispositivo tiene un convertidor D / A

DSP
DSP

Devuelve 1 si el dispositivo es compatible con instrucciones

DCI

Devuelve 1 si el dispositivo tiene un mdulo DCI

DMA

Devuelve 1 si el dispositivo es compatible con DMA

CRC

Devuelve 1 si el dispositivo tiene un mdulo de CRC

GTC
suboficial

Devuelve 1 si el dispositivo tiene un mdulo GTC


Devuelve 1 si el dispositivo tiene un mdulo de NCO

CLC

Devuelve 1 si el dispositivo tiene un mdulo de CLC

DSM

Devuelve 1 si el dispositivo tiene un mdulo de DSM

OPAMPDevuelve 1 si el dispositivo tiene amplificadores operacionales


RTC

Devuelve 1 si el dispositivo tiene un reloj de tiempo real

CAP_SENSE

Devuelve 1 si el dispositivo tiene un mdulo sentido


casquillo CSM y 2 si tiene un mdulo CTMU

MEMORIA EXTERNA
programa externo

Disponibilidad:

186

Devuelve 1 si el dispositivo es compatible con la memoria

INSTRUCTION_CLOCK

Devuelve el reloj de instrucciones MPU

ENH16

Devuelve 1 para 16 dispositivos mejorados

Todos los dispositivos

Funciones
integradas

Se requiere:
Ejemplos:

Nada
#IF Getenv ( "VERSIN") <3.050
Versin # error del compilador demasiado viejo
#TERMINARA SI
for (i = 0; i <getenv ( "DATA_EEPROM"); i ++)
write_eeprom (i, 0);
getenv #IF ( "FUSE_VALID: una baja de voltaje")
#FUSE Brownout
#TERMINARA SI

#byte status_reg = GETENV ( "SFR: STATUS")

#bit carry_flag = GETENV ( "BIT: C")

Archivos de ejemplo:
UNlso Ver:

Ninguna

Ninguna

goto_address ()
Syntax: goto_address (locacin);
parmetros:

locacin es una direccin de ROM, 16 o 32 bits int.

Devoluciones:
Funcin:

Nada
Thila funcin s salta a la direccin especificada por ubicacin. Salta fuera de la funcin
actual debe hacerse slo con gran precaucin. Esto no es una funcin que se utiliza
normalmente, excepto en situaciones muy especiales.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

Nada
#define LOAD_REQUEST PIN_B1
0x1f00 PALA #define
si (entrada (LOAD_REQUEST))
goto_address (PALA);

Archivos de ejemplo:

SEtjmp.h

187

CCS C 10082015

UNlso Ver:

label_addO prima ()

high_speed_adc_done ()
Syntax: valor = high_speed_adc_done ([pair]);
Parmetros: par - Parmetro opcional que determina la bandera preparada, que ADC de par a comprobar. Si no
se utilizan todas las banderas listas se comprueban.
Devoluciones:

Funcin:

Un Int16. Si se utiliza par 1 ser vuelta si ADC se realiza con la conversin, 0 ser
devuelto si todava ocupado. Si no se utiliza par devolver un mapa de bits de los cuales
conversin estn listos para ser ledo. Por ejemplo, un valor de retorno de 0x0041 significa
ese par ADC 6, AN12 y AN13, y un par de ADC 0, AN0 y AN1, estn listos para ser ledo.
Puede ser consultados para determinar si el ADC tiene datos vlidos para ser ledos.

Disponibilidad:

ONLy en los dispositivos dsPIC33FJxxGSxxx.

Se requiere:
Ejemplos:

Ninguna
Int16 resultado [2]
setup_high_speed_adc_pair (1, INDIVIDUAL_SOFTWARE_TRIGGER);
setup_high_speed_adc (ADC_CLOCK_DIV_4);
read_high_speed_adc (1, ADC_START_ONLY); while
(high_speed_adc_done (1)!);
read_high_speed_adc (1, ADC_READ_ONLY,
resultado);
printf ( "valor AN2 = LX%, valor AN3 = LX% \ n \ r", como resultado [0], como
resultado [1]);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_high_speed_adc (),SEtup_high_speed_adc_pair (),read_high_speed_adc ()

i2c_init ()
Syntax: i2c_init ([corriente], baudios);
Parmetros: Secuencia - Parmetro opcional que especifica la corriente se define en #Utilice I2C.
baud - si baudios es 0, perifricos I2C se deshabilitar. Si baudios es 1, perifricos I2C
es inicializado y activado con la velocidad de transmisin especificado en la directiva
#Utilice I2C. Si baudios es> 1, entonces I2C perifrica se inicializa y se permiti la
velocidad de transmisin especificado.
188

Funciones
integradas
Devoluciones:
Funcin:
Disponibilidad:
Se requiere:
Ejemplos:

Nada
To inicializar perifrica I2C en tiempo de ejecucin de velocidad de transmisin especificado.
Todos los dispositivos.
#USO I2C
#USO I2C (MASTER, I2C1, FAST, NOINIT)
i2c_init (TRUE); // Inicializar y activar perifrica I2C a la velocidad de transmisin se
especifica en
// # USE I2C
i2c_init (500000); // Inicializar y permitir I2C perifrica a una velocidad de transmisin de
500
// KBPS

Archivos de ejemplo:
Ninguna
I2C_POLL
(),i2c_speed(),I2C_SlaveAddr (),I2C_ISR_STATE (_) ,I2C_WRITE (),
UNlso Ver:
I2C_READ (),_USE_I2C (),I2C ()

i2c_isr_state ()
Syntax: Estado = i2c_isr_state ();
sTate = i2c_isr_state
(sTREAM); parmetros:
Ninguna
Devoluciones:

Funcin:

sTate es un entero de 8 bits


0 - Partido de direccin recibida con / W R poco clara, realice i2c_read () para leer la
direccin I2C.
1-0x7F - Principal tiene datos escritos; i2c_read () inmediatamente devolver los datos
0x80 - Partido de direccin recibida con bit R / W; realizar i2c_read () para leer la
direccin I2C, y utilizar i2c_write () para precargar la memoria intermedia de transmisin
para la siguiente transaccin (I2C prxima lectura realizada por el maestro leer este
byte).
0x81-0xFF - Transmisin completado y reconocido; responder con i2c_write () para precargar el buffer de transmisin para la prxima transation (la prxima lectura I2C
realizado por el maestro leer este byte).
Devuelve el estado de las comunicaciones I2C en modo I2C esclavo despus de una
interrupcin del SSP. Los incrementos del valor de retorno con cada byte recibido o
enviado.
Si se devuelve 0x00 o 0x80, un i2C_read () necesita ser realizada para leer la direccin
I2C que fue enviado (que coincidir con la direccin configurada por #Utilice I2C por lo
que este valor puede ser ignorada)

Disponibilidad:
Se requiere:
Ejemplos:

Los dispositivos con hardware I2C


#USO I2C
#INT_SSP
i2c_isr anular () {
Estado = i2c_isr_state ();
si (estado == 0) i2c_read ();
i @ c_read ();
si (estado == 0x80)
i2c_read (2);
si (Estado> = 0x80)
i2c_write (send_buffer [Estado - 0x80]);
else if (Estado> 0)
rcv_buffer [Estado - 1] = i2c_read ();

189

CCS C 10082015
}

190

Funciones
integradas
Archivos de ejemplo:
UNlso Ver:

ex_slave.do

i2c_poll,i2c_speed,i2c_start,i2c_sparte superior,i2c_slaveaddr,i2c_writo,i2c_leer,#USO
I2C,I2do Visin de conjunto

i2c_poll ()
Syntax: i2c_poll ()
i2c_poll (sTREAM)
Parmetros: Secuencia (Opcional) - especificar la corriente se define en #Utilice I2C
Devoluciones:
Funcin:

1 (TRUE) o 0 (FALSO)
ThI2C_POLL funcin e () slo debe usarse cuando una funcin de SSP se utiliza el. Esta
funcin devuelve TRUE si el hardware tiene un byte recibido en la memoria intermedia.
Cuando se devuelve un TRUE, una llamada a I2C_READ () inmediatamente devolver el
byte que se ha recibido.

Disponibilidad:

Los dispositivos con construido en I2C

Se requiere:
Ejemplos:

#USO I2C
si (I2C-poll ())
tampn [ndice] = I2C-read (); // leer los datos

Archivos de ejemplo:
UNlso Ver:

Ninguna

i2c_speed,i2c_start,i2c_stop,i2c_slaveaddr,i2c_isr_state,i2c_writo,i2c_leer,#USO I2C,I2C
general

i2c_read ()
Syntax: datos = i2c_read ();
datos = i2c_read (ACK);
datos = i2c_read (corriente, acuse de recibo);
parmetros:

Devoluciones:

C.Ak-Opcional, Por defecto es 1.


0 indica que no ACK.
1 indica que ACK.
Slo 2 de esclavos, indica que no se suelte el reloj al final de la lectura. Se utiliza cuando
i2c_isr_state ()
devuelve 0x80.
sTREAM - Especificar la corriente se define en #Utilice I2C
data - 8 bits int

191

CCS C 10082015

Funcin:

Lee un byte travs de la interfaz I2C. En el modo principal de esta funcin generar el reloj y
en modo esclavo se va a esperar a que el reloj. No hay tiempo de espera para el esclavo, el
uso i2c_poll () para evitar un bloqueo. Utilice restart_wdt () en el #Utilice I2C para
seleccionar la seal del temporizador de perro guardin en el modo esclavo mientras
espera.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#USO I2C
i2c_start ();
i2c_write (0xA1);
datos1 = i2c_read (TRUE);
datos2 = i2c_read (FALSO);
i2c_stop ();

Archivos de ejemplo:
UNlso Ver:

ex_extee.c wyo 2416.do

i2c_poll,i2c_speed,i2c_start,i2c_sparte superior,i2c_slaveaddr,i2c_isr_state,i2c_writo,
#USO I2C,I2C general

i2c_slaveaddr ()
Syntax: I2C_SlaveAddr (aadirr); I2C_SlaveAddr
(corriente, aadirr);
Parmetros: dir = 8 bits direccin del dispositivo
sTREAM(Opcional) - especifica la corriente utilizada en #Utilice I2C
Devoluciones:
Funcin:

Nada
Thifunciones s Establece la direccin de la interfaz I2C en modo esclavo.

Disponibilidad:

Los dispositivos con construido en I2C

Se requiere:
Ejemplos:

#USO I2C
i2c_SlaveAddr (0x08);
i2c_SlaveAddr (i2cStream1, 0x08);

Archivos de ejemplo:
UNlso Ver:

192

ex_slave.c

i2c_poll,i2c_speed,i2c_start,i2c_sparte superior,i2c_isr_state,i2c_writo,i2c_leer,#USO
I2C,I2C Visin de conjunto

Funciones
integradas

i2c_speed ()
Syntax: i2c_speed (baudios)
i2c_speed (sTREAM,baudios)
Parmetros: baudios yos el nmero de bits por segundo.
sTREAM - Especificar la corriente se define en #Utilice I2C
Devoluciones:
Funcin:
hardware I2C

Nada.
This funcin cambia la velocidad de bits I2C en tiempo de ejecucin. Esto slo funciona si el
Modulse utiliza e.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#USO I2C
I2C_Speed (400000);

Archivos de ejemplo:
UNlso Ver:

ninguna

i2c_poll,i2c_starta,i2c_sparte
superior,i2c_slaveaddr,i2c_isr_state,i2c_writo,i2c_read,#USO I2C,I2do Visin de conjunto

i2c_start ()
Syntax: i2c_start () i2c_start (sTREAM)
I2c_start (sTREAM,
reiniciar)
Parmetros: flujo: especificar la corriente se define en #Utilice I2C
reiniciar: 2 - nuevo reinicio se fuerza en lugar de inicio
1 - Se realiza arranque normal
0 (o no especificado) - reinicio se realiza slo si el compilador ltima se encontr con un
I2C_START y sin I2C_STOP
Devoluciones:
Funcin:

undefinere
Emite una condicin de arranque en el modo maestro I2C. Despus de que la condicin de
arranque en el reloj se mantiene baja hasta I2C_WRITE () se llama. Si otro I2C_start se
llama en la misma funcin antes de que un i2c_stop se llama, a continuacin, se emite una
condicin especial reinicio. Tenga en cuenta que el protocolo I2C especfico depende del
dispositivo esclavo. La funcin I2C_START ahora acepta un parmetro opcional. Si el
compilador 1 asume el autobs est en estado detenido. Si el 2 compilador trata este
I2C_START como un reinicio. Si no se pasa ningn parmetro a 2 se utiliza slo si el
compilador compila una I2C_START ltima sin I2C_STOP desde entonces.

193

CCS C 10082015
Disponibilidad:

192

Todos los dispositivos.

Funciones
integradas

Se requiere:
Ejemplos:

#USO I2C
i2c_start ();
i2c_write
(0xa0);
//
I2c_write
Direccin del dispositivo (direccin);
// Los datos a i2c_start dispositivo
(); // Reiniciar
i2c_write (0xA1); // Para cambiar los datos de
direccin de datos = i2c_read (0); // Ahora lee
desde el esclavo
i2c_stop
();

Archivos de ejemplo:
UNlso Ver:

ex_extee.c wyo 2416.do

i2c_poll,i2c_speed,i2c_sparte superior,i2c_slaveaddr,i2c_isr_state,i2c_writo,i2c_leer,
#USO I2C,I2C general

i2c_stop ()
Syntax: i2c_stop ()
i2c_stop (corriente)
parmetros:

sTREAM: (opcional) especifica flujo definido en #Utilice I2C

Devoluciones:
Funcin:

undefinere
Emite una condicin de parada cuando est en el modo maestro I2C.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#USO I2C
i2c_start (); // Iniciar condicin
i2c_write (0xa0); // Direccin del
dispositivo i2c_write (5);
// I2c_write mando
del dispositivo (12);
// los
datos del dispositivo
i2c_stop (); // Condicin de parada

Archivos de ejemplo:
UNlso Ver:

ex_extee.c wyo 2416.do

i2c_poll,i2c_speed,i2c_start,i2c_slaveaddr,i2c_isr_state,i2c_writo,i2c_leer,#USO I2C,I2C
general

193

CCS C 10082015

i2c_write ()
Syntax: i2c_write (daejrcito de reserva)

192

Funciones
integradas
i2c_write (corriente, daejrcito de reserva)
parmetros:

datos yoes un entero de 8 bits


sTREAM - Especificar la corriente se define en #Utilice I2C

Devoluciones:

This funcin devuelve el bit ACK.


0 significa ACK, 1 significa que no hay ACK, 2 significa que hubo una colisin si est en
modo Multi_Master. Esto no devuelve un ACK si se utiliza I2C en modo esclavo.

Funcin:
una

Enva un solo byte travs de la interfaz I2C. En el modo principal de esta funcin generar
clock con los datos y en modo esclavo se va a esperar a que el reloj del maestro. Sin
tiempo de espera automtico se proporciona en esta funcin. Esta funcin devuelve el bit
ACK. El LSB de la primera escritura despus de un arranque determina la direccin de la
transferencia de datos (0 es maestro al esclavo). Tenga en cuenta que el protocolo I2C
especfico depende del dispositivo esclavo.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#USO I2C
cmd largos;
...
i2c_start (); // Iniciar condicin
i2c_write (0xa0); i2c_write // Direccin
del dispositivo (cmd); // byte bajo de
i2c_write de comandos (cmd >> 8); // Byte
alto de mando
i2c_stop (); // Condicin de parada

Archivos de ejemplo:
UNlso Ver:

ex_extee.c wyo 2416.do

i2c_poll,i2c_speed,i2c_start,i2c_sparte
superior,i2c_slaveaddr,i2c_isr_state,i2c_leer,#USO I2C,I2C general

de entrada ()
Syntax: = valor de entrada (alfiler)
parmetros:

Alfiler leer. Los clavos se definen en el archivo de los dispositivos .h. El valor real es
una direccin de bit. Por ejemplo, un puerto (byte 5) bit 3 tendra un valor de 5 * 8 + 3 o
43. Esta se define como sigue: #define PIN_A3 43.
The PIN tambin podra ser una variable. La variable debe tener un valor igual a una de las
constantes (como PIN_A1) para que funcione correctamente. El registro de triple estado se
actualiza a menos que el modo de FAST_IO se establece en el puerto A. Observe que
hacer E / S con una variable en lugar de una constante tomar mucho ms tiempo.

Devoluciones:

Funcin:

0 (o FALSO) si el pin es baja,


1 (o TRUE) si el pin es alto
Thifuncin s devuelve el estado de la clavija indicada. El mtodo de E / S depende de la
directiva * _IO ltimo uso. De forma predeterminada con E / S estndar antes de la
entrada se realiza la direccin de datos se establece de entrada.
195

CCS C 10082015

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Pin constantes se definen en los dispositivos .h archivo


mientras que (de entrada (PIN_B1)!);
// Espera a que pase a nivel alto B1
si (entrada (PIN_A0))
printf ( "A0 es alto hoy \ r \ n");
Int16 i = PIN_B1;
mientras yo);
// Espera a que pase a nivel alto B1

Archivos de ejemplo:
UNlso Ver:

ex_pulse.do

input_x(),UNEDtput_low (),UNEDtput_high (),#USO FIXED_IO,#USO FAST_IO,


#UTILIZAR STANDARD_IO,GenePropsito ral de E / S

input_change_x ()
Syntax: valor = input_change_a (); valor =
input_change_b (); valor =
input_change_c (); valor =
input_change_d (); valor =
input_change_e (); valor =
input_change_f (); valor =
input_change_g (); valor =
input_change_h (); valor =
input_change_j (); valor =
input_change_k ();
parmetros:

Ninguna

Devoluciones:
Funcin:

Un 8 bits o 16 bits int que representa los cambios en el puerto.


This funcin lee el nivel de los pines en el puerto y los compara con los resultados de la
ltima vez que la funcin input_change_x () se llama. Una se devuelve 1 si el valor ha
cambiado, 0 si el valor no cambia.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Ninguna
pin_check = input_change_b ();

Archivos de ejemplo:
UNlso Ver:

194

Ninguna

input (),input_x(),UNEDtput_x (),#USO FIXED_IO,#USO FAST_IO,#USO


STANDARD_IO,GenePropsito ral de E / S

Funciones
integradas

input_state ()
Syntax: valor = input_state (alfiler)
parmetros:

alfiler leer. Los clavos se definen en el archivo de los dispositivos .h. El valor real es
una direccin de bit. Por ejemplo, un puerto (byte 5) bit 3 tendra un valor de 5 * 8 + 3 o
43. Esta se define como sigue: #define PIN_A3 43.

Devoluciones:

Bits que especifica si pasador es alto o bajo. Un 1 indica que el pasador es alta y un
0 indica que es baja.

Funcin:

Thifuncin s lee el nivel de un perno sin cambiar la direccin del pasador como entrada ()
hace.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Nada
level = input_state (pin_A3);
printf ( "nivel:% d", nivel);

Archivos de ejemplo:
UNlso Ver:

Ninguna

input (),SEt_tris_x (),UNEDtput_low (),UNEDtput_high (),GenePropsito ral de E / S

input_x ()
Syntax: valor = input_a () Valor =
input_b () Valor
= input_c () Valor
= input_d ()
Valor = input_e ()
Valor = input_f ()
Valor = input_g
() Valor =
input_h () Valor
= input_j () Valor
= input_k ()
parmetros:
Devoluciones:
Funcin:

Ninguna
Un int 8 bits que representa los datos de entrada del puerto.
Introduce una byte completo desde un puerto. El registro de direccin se cambia de
acuerdo con la ltima #Utilice especificado * Directiva _IO. De forma predeterminada con
E / S estndar antes de la entrada se realiza la direccin de datos se establece de
entrada.

197

CCS C 10082015

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Nada
datos = input_b ();

Archivos de ejemplo:
UNlso Ver:

ex_psp.do

input (),Output_x (),#USO FIXED_IO,#USO FAST_IO,#USO STANDARD_IO

interrupt_active ()
Syntax: interrupt_active (interrupt)
Parmetros: Interrupcin - Constante que especifica la interrupcin
Devoluciones:
Funcin:

valor booleano
Thfuncin de correo comprueba el indicador de interrupcin de la interrupcin especificada
y devuelve verdadero si el indicador est establecido.

Disponibilidad:

Dispositivo con interrupciones

Se requiere:
Ejemplos:

En caso de tener un #INT_xxxx, las constantes se definen en los dispositivos .h archivo.


interrupt_active (INT_TIMER0);
interrupt_active (INT_TIMER1);

Archivos de ejemplo:
UNlso Ver:

Ninguna

disable_interrupts () ,#INT ,Las interrupciones


general clear_interrupt,enable_interrupts ()

isalnum (char)
isdigit (char)
isspace (char)
isprint (x)

isalpha (char)
isgraph (x)
isupper (char)
ispunct (x)

Syntax: valor = isalnum (datac) = Valor


isalpha (datac) = Valor
isdigit (datac) = Valor
islower (datac) = Valor
isspace (Datac) =
Valor isupper (datac)

196

iscntrl (x)
islower (char)
isxdigit (char)

CCS C 10082015

VirginiaLue = isxdigit
(datac) = Valor iscntrl
(Datac) = Valor
isgraph (datac) =
Valor isprint (Datac) =
Valor punct (Datac)
parmetros:

Datac yoEs un carcter de 8 bits

Devoluciones:

0 (o FALSO) si Datac dosis no coincide con los criterios, 1 (TRUE) o si Datac no


cumplan los criterios.

Funcin:

Tests un personaje para ver si cumple con los criterios especficos de la siguiente manera:
isalnum (x) X es 0..9, 'A' .. 'Z', o 'a' .. 'z'
isalpha (x)
X es 'A' .. 'Z' o 'a' .. 'z
isdigit (x)
X es '0' .. '9'
islower (x)
X es 'a' .. 'z'
isupper (x)
X es 'A' .. 'Z
isspace (x)
X es un espacio
isxdigit (x)
X es '0' .. '9', 'A' .. 'F', o 'a' .. 'f
iscntrl (x)
X es menor que un espacio
isgraph (x)
X es mayor que un espacio
isprint (x)
X es mayor que o igual a un espacio
ispunct (x)
X es mayor que un espacio y no una letra o nmero

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <ctype.h>
Identificacin del carbn [20];
... Si (isalpha
(id [0])) {
VALID_ID = TRUE;
for (i = 1; i <strlen (id); i ++)
VALID_ID = VALID_ID && isalnum (id [i]);
} Else VALID_ID =
FALSO;

Archivos de ejemplo:
UNlso Ver:

ex_str.c

est entre()

est entre( )
Syntax: resultado = isamong (valor, cstring)
parmetros:

VirginiaLue yoEs un personaje


csTring yoEs una picadura constante

Devoluciones:

0 (o FALSO) si el valor no est en cstring


1 (o TRUE) si el valor est en cstring

198

Funciones
integradas

Funcin:

Devuelve TRUE si un personaje es uno de los caracteres de una cadena constante.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

Nada
Char = x 'x';
...
si (isamong (x,
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"))
printf ( "El carcter es vlido");

Archivos de ejemplo:
UNlso Ver:

#INCLUYE <ctype.h>

isalnum(),isalpha(),isdigit (),isspace(),islower (),isupper(),isxdigit ()

itoa ()
Syntax:

sTring = Itoa (i32value,i8base, cuerda)

Parmetros: i32value yoEs un int de 32 bits


i8base yoEs un int 8 bits
sTring yos un puntero a una cadena terminada en nulo de caracteres
Devuelve: string yos un puntero a una cadena terminada en nulo de caracteres
Funcin:

Convierte los int32 firmados a una cadena de acuerdo con la base provista y
devuelve el valor convertido en su caso. Si el resultado no puede ser representado,
la funcin devolver 0.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <stdlib.h>
int32 x = 1234;
char string [5];
itoa (x, 10, cadena);
// Cadena es ahora "1234"

Archivos de ejemplo:
UNlso Ver:

Ninguna

Ninguna

199

CCS C 10082015

jump_to_isr ()
Syntax: jump_to_isr (aadirO prima)
parmetros:

unddress yoes una direccin de memoria de programa vlido

Devoluciones:

Sin valor

Funcin:
The funcin jump_to_isr se utiliza cuando la ubicacin de las rutinas de servicio de
interrupcin no son
unt la ubicacin predeterminada en la memoria del programa. Cuando se produce una
interrupcin, la ejecucin del programa saltar a la ubicacin predeterminada y luego saltar
a la direccin especificada.
Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

Nada
int_global
global_isr (void) {
jump_to_isr (isr_address);
}

Archivos de ejemplo:
UNlso Ver:

ex_bootloader.c

#CONSTRUIR

kbhit ()
Syntax: valor = kbhit ()
VirginiaLue = kbhit (sTREAM)
parmetros:

sTREAM yos El ID de flujo asignada a un puerto RS232 disponible. Si no se incluye el


parmetro de corriente, la funcin utiliza la corriente principal utilizado por getc ().

Devoluciones:

0 (o FALSO) si getc () tendr que esperar a que un personaje para entrar, 1 (o


TRUE) si un personaje est listo para getc ()

Funcin:

Disponibilidad:
Se requiere:
Ejemplos:
200

Si el RS232 est bajo el control del software esta funcin devuelve TRUE si el bit de
inicio de un personaje se est enviando en el pin RS232 VN. Si el hardware es RS232
esta funcin devuelve TRUE si un personaje se ha recibido y est esperando en el
bfer de hardware para
getc () para leer. Esta funcin se puede usar para sondear los datos sin detenerse y
esperar a que aparezcan los datos. Tenga en cuenta que en el caso de RS232 software de
esta funcin se debe llamar al
LEAt 10 veces la velocidad de bits para asegurar que los datos de entrada no se pierde.
Todos los dispositivos.
#RS232 USO
charlas timed_getc () {

Funciones
integradas
largo tiempo de espera;
TIMEOUT_ERROR = FALSO; timeout = 0; while
(! kbhit () && (++ tiempo de espera
<50000)) // 1/2
// segundo
delay_us (10);
si (kbhit ())
retorno (getc ());
else {
TIMEOUT_ERROR = TRUE;
return (0);
}
}

Archivos de ejemplo:
UNlso Ver:

ex_tgetc.c

getc (),#RS232 USO,RS232 E / S Descripcin general

label_address ()
Syntax: valor = label_address (etiqueta);
parmetros:

etiqueta yos una etiqueta C en cualquier parte de la funcin

Devoluciones:
Funcin:

Un int de 16 bits en el PCB, PCM y un int de 32 bits para PCH, PCD


Thifuncin s obtiene la direccin en la ROM de la siguiente instruccin despus de la
etiqueta. Esto no es una funcin que se utiliza normalmente, excepto en situaciones muy
especiales.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Nada
comienzo:
a = (b + c) << 2;
final:
printf ( "Se necesita ubicaciones% lu ROM
\ r \ n.", label_address (fin) label_address (iniciar));

Archivos de ejemplo:
UNlso Ver:

SEtjmp.h

irdirigirse()

201

CCS C 10082015

laboratorios ()
Syntax: resultado = laboratorios (valor)
parmetros:

VirginiaLue yoEs una de 16 bits con signo entero largo

Devoluciones:
Funcin:

Un entero largo de 16 bits con signo


Calcula el valor absoluto de un entero largo.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <stdlib.h>
si (laboratorios (target_value - actual_value)> 500)
printf ( "El error es de ms de 500 puntos \ r \ n");

Archivos de ejemplo:
UNlso Ver:

Ninguna

abdominales()

lcd_contrast ()
Syntax: lcd_contrast ( estafacontraste )
parmetros:
interno.

doontraste yos utiliza para establecer la escala de la resistencia de control de contraste

Devoluciones:
Funcin:

indefinido.
This funcin controla el contraste de los segmentos de la pantalla con un valor pasado
entre 0 y 7. Un valor de 0 producir el contraste mnimo, 7 producir el mximo contraste.

Disponibilidad:

ONLy en determinados dispositivos con hardware integrado mdulo de controlador LCD.

Se requiere:
Ejemplos:

Ninguna.
lcd_contrast (0); // Lcd_contrast mnimo
contraste (7); // Contraste mximo

Archivos de ejemplo:
UNlso Ver:

202

Ninguna.

lcd_load(),lcd_symbol(),setup_lcd(),EnDescripcin interna LCD

Funciones
integradas

lcd_load ()
Syntax: lcd_load (buffer_pointer,offset,Leng);
parmetros:

buffer_pointer puntos de los datos de usuario a enviar a la pantalla LCD, offset yos El
desplazamiento dentro del segmento de memoria LCD para escribir los datos, Length yos
el nmero de bytes a transferir a la memoria del segmento LCD.

Devoluciones:
Funcin:

indefinido.
Thila funcin s cargar Length portes de buffer_pointer into segmento de la memoria a
partir de las LCD compensar. La funcin lcd_symbol () proporciona como una forma ms
fcil de escribir datos en la memoria del segmento.

Disponibilidad:

ONLy en dispositivos con hardware integrado mdulo de controlador LCD.

requiere

Las constantes se definen en los dispositivos *.marido archivo.

Ejemplos:

lcd_load (buffer, 0, 16);

Archivos de ejemplo:
UNlso Ver:

ex_92lcd.do

lcd_symbol(),SEtup_lcd (),lcd_concontraste (),Descripcin general de cristal lquido

lcd_symbol ()
Syntax: lcd_symbol (smbolo, bX_addr);
parmetros:

Devoluciones:
Funcin:

Disponibilidad:

symBol yos una constante de 8 bits o 16 bits.


bX_addr yoes una direccin de bit que representa la ubicacin del segmento que
debe utilizarse para el bit X del smbolo especificado.
1-16 Segmentos podran ser especificadas.
undefinere
This funcin carga los bits para el smbolo en los registros de datos de segmento de la
pantalla LCD con cada direccin de bit especificada. Si el bit X en smbolo se establece, en
el segmento bX_addr se establece, de lo contrario, se borra. El bX_addr es una direccin
de bit en la RAM del LCD.
ONLy en dispositivos con hardware integrado mdulo de controlador LCD.

requiere

Las constantes se definen en los dispositivos * archivo .h.

Ejemplos:

byte CONST DIGIT_MAP [10] = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0,

0xFE,
0xE6};
#define DIGIT1 COM1 + 20, + 18 COM1, COM2 + 18, + 20 COM3, COM2 + 28, + 28
COM1, COM2 + 20, + 18 COM3

203

CCS C 10082015

para(i = 0; i <= 9; i
++) {
lcd_symbol(DIGIT_MAP [i], DIGIT1);
Delay_ms(1000);
}

Archivos de ejemplo:
UNlso Ver:

ex_92lcd.do

SEtup_lcd (),lcd_load(),lcd_concontraste (),Descripcin general de cristal lquido

ldexp ()
Syntax: resultado = ldexp (valor,exp);
parmetros:

VirginiaLue yos flotador


expyos un int firmado.

Devoluciones:
Funcin:
2.

resultado es un flotador con tiempos de Valor del resultado 2 elevado a exp poder.
Thfuncin de correo ldexp multiplica un nmero de coma flotante por una potencia entera de

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <math.h>
flotar resultado;
resultado = ldexp (.5,0);
// Resultado es 0,5

Archivos de ejemplo:
UNlso Ver:

Ninguna

frexp (),exp(),Iniciar sesin(),log10(),modF()

Iniciar sesin( )
Syntax: resultado = log (valor)
parmetros:
Devoluciones:
Funcin:

204

VirginiaLue yoEs un flotador


Un flotador
Calcula el logaritmo natural del flotador x. Si el argumento es menor que o igual a cero o
demasiado grande, el comportamiento es indefinido.

Funciones
integradas
Nota sobre el control
de errores:
"mirrno.h "se incluye a continuacin, los errores de dominio y el rango se almacenan en la
variable errno. El usuario puede comprobar el valor en errno para ver si se ha producido
un error e imprimir el error utilizando la funcin perror.
error de dominio se produce en los siguientes casos:
Iniciar sesin: Cuando el argumento es negativo
Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <math.h>
Enx = log (x);

Archivos de ejemplo:
UNlso Ver:

Ninguna

log10 (),exp(),pow()

log10 ()
Syntax: resultado = log10 (valor)
parmetros:

VirginiaLue yoEs un flotador

Devoluciones:
Funcin:

Un flotador
Calcula el logaritmo en base diez de la boya x. Si el argumento es menor que o igual a cero
o demasiado grande, el comportamiento es indefinido.
Nota sobre el control
de errores:
Si se incluye "errno.h", entonces los errores de dominio y el rango se almacenan en la
variable errno. El usuario puede comprobar el valor en errno para ver si se ha producido
un error e imprimir el error utilizando la funcin perror.
error de dominio se produce en los siguientes casos:
log10: Cuando el argumento es negativo

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <math.h>
db = log10 (read_adc () * (5.0 / 255)) * 10;

Archivos de ejemplo:
UNlso Ver:

Ninguna

Iniciar sesin(),exp(),pow()
205

CCS C 10082015

longjmp ()
Syntax: longjmp (env, val)
parmetros:

miNevada: El objeto de datos que ser restaurada por esta funcin


Virginial: El valor que el setjmp funcin devolver. Si val es 0, entonces la funcin
devolver setjmp 1 vez.

Devoluciones:

Una vez completada longjmp, la ejecucin del programa contina como si la


invocacin correspondiente de la funcin setjmp acababa de volver al valor especificado
por val.

Funcin:

Realiza la transferencia no local de control.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <setjmp.h>
longjmp (jmpbuf, 1);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtjmp ()

make8 ()
Syntax: i8 = MAKE8 (Virginiar,offset)
parmetros:

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

Virginiaryos un entero de 16 o 32 bits.


compensar yos un desplazamiento de 0,1,2 o 3 byte.
Un entero de 8 bits
Extractos el byte en el offset de var. Igual que: i8 = (((var >> (desplazamiento * 8)) y
0xff), salvo que se haga con un solo movimiento de bytes.
Todos los dispositivos
Nada
int32 x;
int y;
y = make8 (x, 3); // Obtiene MSB de x

206

Funciones
integradas
Archivos de ejemplo:
UNlso Ver:

Ninguna

make16(),make32()

make16 ()
Syntax: i16 = MAKE16 (Virginiarhigh,Virginiarlow)
parmetros:

Virginiarhigh unreVirginiarlow unre 8 bits enteros.

Devoluciones:
Funcin:

Un entero de 16 bits
Hacers un nmero de 16 bits de dos nmeros de 8 bits. Si alguno de los parmetros es de
16 o 32 bits slo el lsb se utiliza. Igual que: i16 = (Int16) (varhigh y 0xff) * 0x100 + (Varlow y
0xff), salvo que se haga con dos bytes se mueve.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

Nada
x largos;
int hi, lo;
x = make16 (alto, bajo);

Archivos de ejemplo:
UNlso Ver:

ltc1298.c

make8(),make32()

make32 ()
Syntax: i32 = MAKE32 (Virginiar1,var2,var3,var4)
parmetros:
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:

VirginiaR1-4 ArkansasE a 8 o 16 bits enteros. VirginiaR2-4 Arkansase opcional.


Un entero de 32 bits
Hacers un nmero de 32 bits de cualquier combinacin de nmeros 8 y 16 bits. Tenga en
cuenta que el nmero de parmetros puede ser 1 a 4. El msb es primero. Si los bits
totales aportados es inferior a
32 a continuacin, se aaden ceros en el MSB.
Todos los dispositivos
Nada

207

CCS C 10082015

Ejemplos:

int32 x;
int y; z
larga;
x = make32 (1,2,3,4); // X es 0x01020304
y = 0x12;
z = 0x4321;
x = make32 (y, z); // X es 0x00124321
x = make32 (y, y, z); // X es 0x12124321

Archivos de ejemplo:
UNlso Ver:

ex_freqc.c

make8(),make16()

malloc ()
Syntax: ptr = malloc (tamao)
parmetros:

size yoes un nmero entero que representa el nmero de exentos que se asignar.

Devoluciones:
Funcin:

Un puntero a la memoria asignada, en su caso. De lo contrario devuelve null.


The la funcin malloc asigna espacio para un objeto cuyo tamao est determinado por el
tamao y cuyo valor es indeterminado.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <stdlibm.h>
int * FPR;
FPR = malloc (10);
// IPTR apuntar a un bloque de memoria de 10 bytes.

Archivos de ejemplo:
UNlso Ver:

Ninguna

realloc (),gratis(),calloc()

memcpy () memmove ()
Syntax: memcpy (destino,fuente,norte)
Memmove (destino,souRCE,norte)

208

Funciones
integradas

parmetros:

destino yos un puntero a la memoria de destino.


source yos un puntero a la memoria de origen ,.
norteyos el nmero de bytes a transferir

Devoluciones:
Funcin:

undefinere
Copias n bytes desde el origen al destino en la memoria RAM. Tenga en cuenta que los
nombres de matriz son punteros donde otros nombres de variables y nombres de
estructura no son (y por lo tanto necesitan una y delante de ellos).
Memmove realiza una copia de seguridad (objetos superpuestos no causa un problema). La
copia se lleva a cabo como si los n caracteres de la fuente se copian primero en una matriz
temporal de n caracteres que no se superponen los objetos de destino y de origen. A
continuacin, los n caracteres de la matriz temporal se copian al destino.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

Nada
memcpy (y Structa, y structB, sizeof
(Structa)); memcpy (Arraya, arrayB, sizeof
(Arraya)); memcpy (y Structa, y Databyte, 1);
char a [20] = "hola";
memmove (a, a + 2,5);
// A es ahora "llo"

Archivos de ejemplo:
UNlso Ver:

Ninguna

strcpy (),memset ()

memset ()
Syntax: memset (destino,valor,norte)
parmetros:

destino yos un puntero a la


memoria.
VirginiaLue yoEs un int 8 bits
norteyos un int
de 16 bits.
On PCB y partes PCM n slo puede ser 1-255.

Devoluciones:
Funcin:

undefinere
Establece un nmero n de bytes, comenzando en destino, a valorar. Tenga en cuenta que
los nombres de matriz son punteros donde otros nombres de variables y nombres de
estructura no son (y por lo tanto necesitan una y delante de ellos).

209

CCS C 10082015

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

Nada
memset (Arraya, 0, sizeof (Arraya));
memset (arrayB,, sizeof (arrayB) '?');
memset (y Structa, 0xFF, sizeof (Structa));

Archivos de ejemplo:
UNlso Ver:

Ninguna

memcpy()

modf ()
Syntax: resultado = modf (valor, y engral)
parmetros:

VirginiaLue yoEs un flotador


integral yoEs un flotador

Devoluciones:
Funcin:

resultado es un flotador
Thfuncin de correo modf rompe el valor del argumento en partes integrales y fracciones,
cada una de las cuales tiene el mismo signo que el argumento. Almacena la parte entera
como un flotador en la integral objeto.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <math.h>
resultado de flotacin, integral;
resultado = modf (123.987, Y integral);
// Resultado es 0.987 e integral es 123.0000

Archivos de ejemplo:
UNlso Ver:

Ninguna

Ninguna

_mul ()
Syntax: prod = _mul (val1, val2);
parmetros:

Virginial1 unreVirginial2 unre ambos enteros de 8 bits o de 16 bits

Devoluciones:
Un entero de 16 bits si ambos parmetros son nmeros enteros de 8 bits, o un
nmero entero de 32 bits si ambos parmetros
210

Funciones
integradas
unre enteros de 16 bits.
Funcin:

Realiza una multiplicacin optimizada. Al aceptar un tipo diferente de lo que devuelve,


esta funcin evita la sobrecarga de la conversin de los parmetros de un tipo ms
grande.

Disponibilidad:

Todos los
dispositivos

uires
Req
:

Nada

Exa
metroPLE
s:

int a = 50, b =
100;
long int c;
c = _mul (a, b);

Po r
ejem
plo
archivos
:

Ninguna

UNlso
Ver:

Ninguna

// C sostiene 5000

nargs ()
Syntax: void foo (char * str, int contar, ...)
parmetros:

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

Thfuncin de correo puede tener parmetros variables. El usuario puede utilizar la


biblioteca stdarg para crear funciones que toman los parmetros variables.
Funcin dependiente.
Thbiblioteca e stdarg permite al usuario crear funciones que soporta argumentos variables.
Thfuncin de correo que acepte un nmero variable de argumentos debe tener al menos
uno, parmetros reales conocidos, y puede tener ms. El nmero de argumentos a menudo
se pasa a la funcin en uno de sus parmetros reales. Si la lista de argumentos de longitud
variable puede implicar ms de un tipo, la informacin de tipo general se pas as. Antes de
procesamiento puede
empezar, La funcin crea un puntero argumento especial de tipo va_list.
Todos los dispositivos
#INCLUYE <stdarg.h>
int foo (int num, ...)
{
int suma = 0;
int i;
argptr va_list; // Crear va_start puntero del
argumento especial (argptr, num); // Inicializar
argptr
for (i = 0; i <num; i ++)
suma = suma + va_arg (argptr, int);
va_end (argptr); // Fin de la variable suma
de retorno de procesamiento;

211

CCS C 10082015

}
void main ()
{
int totales;
Total = foo (2,4,6,9,10,2);
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

va_starta de () ,va_end() ,va_arg ()

offsetof () offsetofbit ()
Syntax: valor = offsetof (stype,campo);
VirginiaLue = offsetofbit (stipo,campo);
parmetros:

stipo yos un nombre de tipo de estructura.


Campo yos un campo de la estructura anterior

Devoluciones:
Funcin:

Un byte de 8 bits
Tesfunciones e devolver un valor de desviacin en una estructura para el
campo indicado. offsetof devuelve el desplazamiento en bytes y
offsetofbit devuelve el desplazamiento en bits.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <stddef.h>
time_structure struct {
int hora, minuto, segundo;
zona int: 4;
daylight_savings Intl;
}
x = offsetof (time_structure,
sec);
// X 2 ser
x = offsetofbit (time_structure, sec);
// X 16 sern
x = offsetof (time_structure,
daylight_savings);
// X ser 3
x = offsetofbit (time_structure,
daylight_savings);
// X 28 sern

Archivos de ejemplo:

212

Ninguna

Funciones
integradas
UNlso Ver:

Ninguna

output_x ()
Syntax: output_a (valor) Output_b
(valor) Output_c
(valor) Output_d
(valor) Output_e
(valor) Output_f
(valor) Output_g
(valor) Output_h
(valor) Output_j
(valor) Output_k
(valor)
parmetros:

VirginiaLue yoEs un int 8 bits

Devoluciones:
Funcin:

undefinere
UNEDtput un byte todo a un puerto. El registro de direccin se cambia de acuerdo con
la ltima #Utilice especificado * Directiva _IO.

Disponibilidad:
(A-E)

Todos los dispositivos, sin embargo no todos los dispositivos tienen todos los puertos

Se requiere:
Ejemplos:

Nada
OUTPUT_B (0xf0);

Archivos de ejemplo:
UNlso Ver:

ex_patg.c

input (),Output_low (),UNEDtput_high (),UNEDtput_float (),UNEDtput_bit (),#USO FIXED_IO,


#UTILIZAR FAST_IO,#USO STANDARD_IO,GenePropsito ral de E / S

output_bit ()
Syntax: output_bit (alfiler,valor)
parmetros:

Devoluciones:

Patas unre definido en los dispositivos .h archivo. El nmero real es una direccin de bit.
Por ejemplo, un puerto (byte 5) bit 3 tendra un valor de 5 * 8 + 3 o 43. Esta se define
como sigue: #define PIN_A3 43. El PIN tambin podra ser una variable. La variable debe
tener un valor igual a
ene de las constantes (como PIN_A1) para que funcione correctamente. El registro de tres
estados se actualiza a menos
el modo FAST_IO se establece en el puerto A. Tenga en cuenta que haciendo E /
S con una variable en lugar de una constante tomar mucho ms tiempo.
Valor yos un 1 o un 0.
undefinere
213

CCS C 10082015

Funcin:

UNEDtputs el valor especificado (0 o 1) para el pasador de I / O


especificado. El mtodo de fijar el registro de direccin est
determinada por la ltima
#Directiva USO * _IO.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Pin constantes se definen en los dispositivos .h archivo


output_bit (PIN_B0, 0);
// Igual que output_low (pin_B0);
output_bit (PIN_B0, entrada (PIN_B1));
// Hacer B0 pasador de la misma como B1

output_bit (PIN_B0, shift_left (y de datos, 1, entrada (PIN_B1)));


// Salida el MSB de datos para
// B0 y al mismo tiempo
// Cambiar B1 en el LSB de los datos
Int16 i = PIN_B0;
ouput_bit (i, shift_left (y datos, 1, entrada (PIN_B1)));
// Mismo que el anterior ejemplo, pero
// Utiliza una variable en lugar de una constante

Archivos de ejemplo:
UNlso Ver:

ex_extee.c wyo 9356.do

input (),Output_low (),UNEDtput_high (),UNEDtput_float (),UNEDtput_x (),#USO FIXED_IO,


#UTILIZAR FAST_IO,#USO STANDARD_IO,GenePropsito ral de E / S

output_drive ()
Syntax: output_drive (pin)
parmetros:

Devoluciones:
Funcin:
Disponibilidad:
Se requiere:
Ejemplos:

214

Patas unre definido en los dispositivos .h archivo. El valor real es una direccin de bit. Por
ejemplo, un puerto (byte 5) bit 3 tendra un valor de 5 * 8 + 3 o 43. Esta se define como
sigue: #define PIN_A3 43.
undefinere
Establece el pin especificado el modo de salida.
Todos los dispositivos.
Pin constantes se definen en el archivo devices.h.
output_drive (pin_A0); // Establece pin_A0 a la salida de su
valor output_bit (pin_B0, entrada (pin_A0)) // hace B0 lo
mismo que A0

Funciones
integradas

Archivos de ejemplo:
UNlso Ver:

Ninguna

input (),Output_low (),UNEDtput_high (),UNEDtput_bit (),UNEDtput_x (),UNEDtput_float ()

output_float ()
Syntax: output_float (alfiler)
parmetros:

Patas unre definido en los dispositivos .h archivo. El valor real es una direccin de bit. Por
ejemplo, un puerto (byte 5) bit 3 tendra un valor de 5 * 8 + 3 o 43. Esta se define como
sigue: #define PIN_A3 43. El PIN tambin podra ser una variable para identificar el pin. La
variable debe tener un valor igual a una de las constantes (como PIN_A1) para que
funcione correctamente. Tenga en cuenta que haciendo E / S con una variable en lugar de
una constante tomar mucho ms tiempo.

Devoluciones:
Funcin:

undefinere
Establece el pin especificado para el modo de entrada. Esto permitir que el perno para
flotar alta para representar una alta en un tipo de colector abierto de conexin.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Pin constantes se definen en los dispositivos .h archivo


if ((Datos y 0x80) == 0)
output_low (pin_A0);
otra cosa output_float
(pin_A0);

Archivos de ejemplo:
UNlso Ver:

Ninguna

input (),Output_low (),UNEDtput_high (),UNEDtput_bit (),UNEDtput_x (),UNEDtput_drive


(),#UTILIZAR FIXED_IO,#USO FAST_IO,#USO STANDARD_IO,GenePropsito ral
de E / S

output_high ()
Syntax: output_high (alfiler)
parmetros:

Alfiler escribir en. Los clavos se definen en el archivo de los dispositivos .h. El valor real
es una direccin de bit. Por ejemplo, un puerto (byte 5) bit 3 tendra un valor de 5 * 8 + 3 o
43. Esto se define como
de la siguiente manera: #DEFINE PIN_A3 43. El PIN tambin podra ser una variable. La
variable debe tener una
Value igual a una de las constantes (como PIN_A1) funcione correctamente. El registro
de triple estado se actualiza a menos que el modo de FAST_IO se establece en el
puerto A. Tenga en cuenta que haciendo E / S con una variable en lugar de una
215

CCS C 10082015
constante tomar mucho ms tiempo.

216

Funciones
integradas
Devoluciones:
Funcin:
uso

undefinere
Establece un alfiler dado al estado alto. El mtodo de la I / O se utiliza depende del ltimo
* Directiva _IO.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Pin constantes se definen en los dispositivos .h archivo


output_high (PIN_A0);
Int16 i = PIN_A1;
output_low (PIN_A1);

Archivos de ejemplo:
UNlso Ver:

ex_sqw.do

input (),Output_low (),UNEDtput_float (),UNEDtput_bit (),UNEDtput_x (),#USO FIXED_IO,


#UTILIZAR FAST_IO,#USO STANDARD_IO,GenePropsito ral de E / S

output_low ()
Syntax: output_low (alfiler)
parmetros:

Patas unre definido en los dispositivos .h archivo. El valor real es una direccin de bit. Por
ejemplo, un puerto (byte 5) bit 3 tendra un valor de 5 * 8 + 3 o 43. Esta se define como
sigue: #define PIN_A3 43. El PIN tambin podra ser una variable. La variable debe tener
un valor igual a una de las constantes (como PIN_A1) para que funcione correctamente.
El registro de triple estado se actualiza a menos que el modo de FAST_IO se establece
en el puerto A. Tenga en cuenta que haciendo E / S con una variable en lugar de una
constante tomar mucho ms tiempo.

Devoluciones:
Funcin:
ltimo uso

undefinere
Establece un alfiler dado al estado fundamental. El mtodo de la I / O se utiliza depende del
* Directiva _IO.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Pin constantes se definen en los dispositivos .h archivo


output_low (PIN_A0);
Int16i = PIN_A1;
output_low (PIN_A1);

Archivos de ejemplo:
UNlso Ver:

ex_sqw.do

input (),Outpumuslo(),UNEDtput_float (),Output_bit (),Output_x (),#USO FIXED_IO,


#UTILIZAR FAST_IO,#USO STANDARD_IO,GenePropsito ral de E / S
217

CCS C 10082015

output_toggle ()
Syntax: output_toggle (alfiler)
Parmetros: Contactos unre definido en los dispositivos .h archivo. El valor real es una direccin de bit. Por
ejemplo, un puerto (byte 5) bit 3 tendra un valor de 5 * 8 + 3 o 43. Esta se define como
sigue: #define PIN_A3 43.
Devoluciones:
Funcin:

Indefinido
Palancas el bajo estado de alta / del pin especificado.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Pin constantes se definen en los dispositivos .h archivo


output_toggle (PIN_B4);

Archivos de ejemplo:
UNlso Ver:

Ninguna

Entrada(),Outpumuslo(),UNEDtput_low (),UNEDtput_bit (),UNEDtput_x ()

perror ()
Syntax: perror (sTring);
parmetros:

sTring yos una cadena o una matriz de caracteres (terminada en nulo) constante.

Devoluciones:
Funcin:

Nada
This funcin imprime en stderr la cadena suministrada y una descripcin del ltimo error
del sistema (normalmente un error matemtico).

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#USO RS232, # include <errno.h>


x = sin (y);
si (Error! = 0)
perror ( "Problema en find_area");

Archivos de ejemplo:

218

Ninguna

Funciones
integradas
UNlso Ver:

RS232 E / S Descripcin general

pid_busy ()
Syntax: resultado = pid_busy ();
parmetros:

Ninguna

Devoluciones:
Funcin:

TRUE si el mdulo PID est ocupado o FALSO es el mdulo PID no est ocupado.
TO comprobar si el mdulo PID est ocupado con un clculo.

Disponibilidad:

Todos los dispositivos con un mdulo PID.

Se requiere:
Ejemplos:

Nada
pid get_result (PID_START_ONLY, ADCResult);
while (pid_busy ());
pid_get_result (PID_READ_ONLY, y PIDResult);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_pid (),pid_writo(),pid_get_result (),PID_leer()

pid_get_result ()
Syntax:

pid_get_result (set_point, de entrada, de salida // Inicio y Lee


pid_get_result (modo, Set_Point, insertados);
// Slo arranque
pid_get_result (modo, Y la salida)
//Solo lectura
pid_get_result (modo, Set_Point, de entrada, de
salida y);
Parmetros: Modo- Parmetro constante que especifica si slo poner en marcha el clculo, slo se lea el
resultado, o iniciar el clculo y leer el resultado. Las opciones se definen en el archivo de
cabecera del dispositivo como:
PID_START_READ
PID_READ_ONLY
PID_START_ONLY
SEt_point -una de 16 bits variable o constante que representa el punto del sistema de
control conjunto, el valor de la entrada del sistema de control se compara contra para
determinar el error en

219

CCS C 10082015

el sistema.
entrada - Una de 16 bits variable o constante que representa la entrada del sistema de
control.
salida - Una estructura que la salida del mdulo PID se guardar. Cualquiera de pasar
la direccin de la estructura como el parmetro, o un puntero a la estructura como el
parmetro.
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

Nada
TO pasar el punto de ajuste y la entrada del sistema de control al mdulo PID, inicie el
clculo PID y obtener el resultado del clculo PID. El clculo PID se inicia
automticamente cuando la entrada se escribe en los registros de entrada del mdulo
PID.
Todos los dispositivos con un mdulo PID.
Las constantes se definen en el archivo .h del dispositivo.
pid_get_result (punto de ajuste, ADCResult, y PIDOutput); // Iniciar y
Lee pid_get_result (PID_START_ONLY, SetPoint, ADCResult); // Iniciar
Slo
pid_get_result (PID_READ_ONLY, y PIDResult);
//Solo lectura

Archivos de
ejemplo:

Ninguna

UNlso Ver:

SEtup_pid (),pid_read(),pid_writo(),pid_busy()

pid_read ()
Syntax: pid_read (register, y de salida);
Parmetros: registran- Especificar constante que registra PID para leer. Los registros que se pueden
escribir se definen en el archivo de cabecera del dispositivo como:
PID_ADDR_ACCUMULATOR
PID_ADDR_OUTPUT
PID_ADDR_Z1
PID_ADDR_Z2
PID_ADDR_K1
PID_ADDR_K2
PID_ADDR_K3
salida -a variable de 16 bits, 32 bits variable o estructura que especifica PID registra el
valor se guardar. El tamao depende de los registros que se estn leyendo. Cualquiera
de pasar la direccin de la variable o estructura que el parmetro, o un puntero a la
variable o estructura que el parmetro.

220

Devoluciones:

Nada

Funciones
integradas

221

CCS C 10082015

Funcin:

To leer el valor actual del acumulador, de salida, Z1, Z2, Set Point, K1, K2 o K3 registros
PID. Si el PID est ocupado con un clculo de la funcin se espera para el mdulo de
clculo para terminar antes de leer el registro especificado.

Disponibilidad:

Todos los dispositivos con un mdulo PID.

Se requiere:
Ejemplos:

Las constantes se definen en el archivo .h del dispositivo.


pid_read (PID_ADDR_Z1, y value_z1);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_pid (),pid_writo(), pid_get_result (),pid_busy()

pid_write ()
Syntax: pid_write (registrarse, e introduccin de texto);
Parmetros: registran- Especificar constante que registra PID para escribir. Los registros que se pueden
escribir se definen en el archivo de cabecera del dispositivo como:
PID_ADDR_ACCUMULATOR
PID_ADDR_OUTPUT
PID_ADDR_Z1
PID_ADDR_Z2
PID_ADDR_Z3
PID_ADDR_K1
PID_ADDR_K2
PID_ADDR_K3
entrada -a variable de 16 bits, 32 bits variable o estructura que contiene los datos que
se escriben. El tamao depende de los registros que se estn escribiendo. Cualquiera
de pasar la direccin de la variable o estructura que el parmetro, o un puntero a la
variable o estructura que el parmetro.

Devoluciones:
Funcin:

Disponibilidad:

222

Nada
To escribir un nuevo valor para el acumulador, de salida, Z1, Z2, Set Point, K1, K2 o K3
registros PID. Si el PID est ocupado con un clculo de la funcin se espera para el
mdulo para terminar el clculo antes de escribir el registro especificado.
Todos los dispositivos con un mdulo PID.

Funciones
integradas

Se requiere:
Ejemplos:

Las constantes se definen en el archivo .h del dispositivo.


pid_write (PID_ADDR_Z1, y value_z1);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_pid (),pid_read(),pid_get_result (),pid_busy()

pll_locked ()
Syntax: resultado = pll_locked ();
parmetros:

Ninguna

Devoluciones:

Un short int. TRUE si el PLL est


bloqueado / listo, FALSE si no est
bloqueada PLL / listo

Funcin:

Disponibilidad:

This funcin permite probar el bit de bandera PLL Listo para calcular si el PLL es estable
y funcionando.
Los dispositivos con un bucle enclavado en fase (PLL). No todos los dispositivos
tienen una bandera Listo PLL, para aquellos dispositivos cuya funcin pll_locked ()
siempre devuelve TRUE.

Se requiere:
Ejemplos:

Nada.
while (! pll_locked());

Archivos de ejemplo:
UNlso Ver:

Ninguna

#nose retardo

port_x_pullups ()
Syntax: (port_a_pullupsvalor)
(port_b_pullupsvalor)
223

CCS C 10082015

(port_d_pullupsvalor()
port_e_pullupsvalor()
port_j_pullupsvalor()
port_x_pullupsupmask()
port_x_pullupsupmask,hacerwnmas
k)
parmetros:

VirginiaLue yos VERDADERO o FALSO en la mayora de las piezas, algunas partes


que permiten dominadas que se especificarn en los pines individuales permiten un
entero de 8 bits aqu, un bit para cada pin del puerto.
upmask para los puertos que permiten dominadas que se especificarn en una base
pasador. Esta mscara indica lo que debe tener pasadores dominadas activados. Un 1
indica que las dominadas est encendido.
downmask para los puertos que permiten jalones que deber mencionarse en base
clavija. Esta mscara indica lo que debe tener pasadores jalones activados. Un 1
indica que los jalones est encendido.

Devoluciones:
Funcin:

undefinere
Establece las dominadas de entrada. TRUE se activar y desactivar un FALSO.

Disponibilidad:
SETUP_COUNTERS

ONLy 14 y los dispositivos de 16 bits (PCM y PCH). (Nota: el uso de PCB


PensilvaniaRTS).

Se requiere:
Ejemplos:

Nada
port_a_pullups (false);

Archivos de ejemplo:
UNlso Ver:

ex_lcdkb.c,KBD.do

input (),input_x (),UNEDtput_float ()

pow () PWR ()
Syntax: f = pow (incgnita,y)
f = (PWRincgnita,y)
parmetros:
Devoluciones:
Funcin:

incgnitaunreyArkansascorreo de tipo float


Un flotador
Calcula X a la potencia Y.
Nota sobre el control
de errores:
Si se incluye "errno.h", entonces los errores de dominio y el rango se almacenan en la
variable errno. El usuario puede comprobar el valor en errno para ver si se ha producido
un error e imprimir el error utilizando la funcin perror.
Error de rea ocurre en el caso siguiente:
pow: Cuando el argumento X es negativo

224

Funciones
integradas
Disponibilidad:

Todos los dispositivos

225

CCS C 10082015

Se requiere:
Ejemplos:

#INCLUYE <math.h>
rea = pow (tamao, 3.0);

Archivos de ejemplo:
UNlso Ver:

Ninguna

Ninguna

printf () fprintf ()
Syntax: printf (sTring)
o
printf (csTring,valores...)
o
printf (fnombre,csTring,valores...)
fprintf (sTREAM,csTring,valores...)
parmetros:

Cuerda yos una constante de cadena o un array de caracteres terminada en nulo.


Valores yoEs una lista de variables separadas por comas, fname es un nombre de funcin
que se utilizar para la salida (por defecto es se se especifica ninguno putc.
Corriente yos un identificador de flujo (un byte constante). Tenga en cuenta que
especifica el formato no funcionan en las cadenas de banda de memoria RAM.

Devoluciones:
Funcin:

undefinere
UNEDtputs una cadena de caracteres a cualquiera de los estndar RS-232 pines (dos
primeras formas) o para una funcin especfica. El formateo es de acuerdo con el
argumento de cadena. Cuando se utilizan las variables de esta cadena debe ser una
constante. El carcter% se utiliza dentro de la cadena para indicar un valor de la variable
va a dar formato y la salida. Anhela en el printf pueden ser de 16 o 32 bits. Una salida %%
voluntad el smbolo%. Reglas de formato para el siguiente%.
Ver las Expresiones> Constantes y secciones trigraph de este manual para otro
carcter de escape que puede ser parte de la cadena.
Si se utiliza fprintf (), entonces la corriente especificada se utiliza cuando printf () por
defecto es STDOUT (el ltimo RS232 USO).
Format
o:
Thformato electrnico toma la forma genrica% nt. n es opcional y puede ser 1-9 para
especificar
c Carctercuntos caracteres han de ser emitida, o 01-09 para indicar ceros a la
sTexto o un carcter
uunsigned int
reint firmado
Lu
long unsigned int
Ld
long firm int
incgnitaint hexagonal (en minsculas)
incgnitaint hexagonal (maysculas)

226

Funciones
integradas
lx
Hex entero largo (en minsculas)
LX
Hex entero largo (maysculas)
FFlotar con decimales truncada
gramoFlotar con decimales redondeada
miFlotador en formato exponencial
w
unsigned int con decimal inserta. Especificar dos nmeros de
n. El primero es un ancho total del campo. El segundo es el
nmero deseado de posiciones decimales.
examplformatos electrnicos:
Especificador Valor = 0x12 = Valor 0xfe
03%u018 254
%u18 254
% 2u18 *
%518 254
%re18 -2
%incgnita12 Fe
%incgnita12 FE
4%incgnita0012 00FE
% 3.1w
10,8 25,4
* El resultado es indefinido - Supongamos basura.
Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#USO RS232 (a menos que se utiliza fnombre)


byte x, y, z; printf ( "hithere");
printf ( "RTCCValue => 2x% \ n \ r",
get_rtcc ()); printf ( "% 2u% X% 4X \ n
\ r", x, y, z);
printf (LCD_PUTC, "n =% u", n);

Archivos de ejemplo:
UNlso Ver:

ex_admm.do,ex_lcdkb.do

untoi (), Puts (), putc (), getc() (Por ejemplo, un arroyo), RS232 E / S Descripcin general

profileout ()
Syntax: profileout (cadena); profileout
(cadena, valor);
profileout (valor);
parmetros:

Devoluciones:
Funcin:

sTring es cualquier cadena constante, y el valor puede ser cualquier nmero entero
constante o variable. A pesar de la longitud de la cadena el usuario especifica aqu, el
perfil de cdigo de tiempo de ejecucin ser en realidad slo enviar una etiqueta de
identificador de uno o dos bytes a la herramienta el perfil de cdigo para mantener el
tiempo de transmisin y ejecucin a un mnimo.

Indefinido
TyPically el perfilador de cdigo registrar y la entrada y la salida de la funcin de
visualizacin, para mostrar la secuencia de llamada y el perfil de los tiempos de
ejecucin de las funciones. Mediante el uso
227

CCS C 10082015

profileout (), el usuario puede aadir cualquier mensaje o mostrar cualquier


variable en la herramienta de perfil cdigo. La mayora de los mensajes
enviados por profileout () se muestran en los Mensajes de Datos '' y 'la
secuencia de llamada' pantallas de la herramienta de perfil de cdigo.
Si se utiliza un profileout (cadena) y la primera palabra de la cadena es "START",
la herramienta de perfil cdigo ser luego medir el tiempo que tarda hasta que se
ve la misma profileout (cadena) donde el "START" se sustituye por "STOP" . Esta
medicin se indica entonces en la pantalla de estadstica de la herramienta de
perfil de cdigo, usando cadena como el nombre (sin "START" o "STOP")
Disponibilidad:

Uny de dispositivo.

Se requiere: perfil #use () utilizard en algn lugar en el cdigo fuente del proyecto.
Ejemplos:

// Enviar una cadena simple.


profileout ( "Esto es una cadena de
texto");
// Enviar una variable con un identificador de cadena.
profileout ( "RemoteSensor =", ADC);
// Simplemente enviar
una variable. profileout
(ADC);
// Tiempo de la duracin de un bloque de cdigo se tarda en
ejecutar.
// Esto se mostrar en el 'Estadsticas' de la
// Herramienta de cdigo de
perfil. profileout ( "activar mi
algoritmo");
/ * Cdigo va aqu * /
profileout ( "detener mi algoritmo");

Archivos de ejemplo:
UNlso Ver:

ex_profile.c

#nosperfil de correo (),#pERFIL,Cdigo de Generales Actualizaciones

psmc_blanking ()
Syntax: psmc_blanking (unit, rising_edge, rise_time, falling_edge, fall_time);

parmetros:

unidad yos el nmero de unidad PSMC 1-4


rising_edge Arkansase los eventos que son ignorados despus de la seal activa.
rise_time yos El tiempo en las garrapatas (0-255) que los citados hechos se ignoran.
falling_edge unre los eventos que son ignorados despus de la seal pasa a inactiva.
otoo yos El tiempo en las garrapatas (0-255) que los citados hechos se ignoran.

228

Funciones
integradas
Eventos:

PSMC_EVENT_C1OUT

229

CCS C 10082015

Devoluciones:

PSMC_EVENT_C2OUT
PSMC_EVENT_C3OUT
PSMC_EVENT_C4OUT
PSMC_EVENT_IN_PIN

undefinere

Funcin:
Thifuncin s se utiliza cuando el ruido del sistema puede causar una activacin incorrecta
de uno de los eventos especificados. Esta funcin permite ignorar estos eventos durante
un periodo de tiempo de alrededor de cualquiera de los bordes de la seal. Ver
setup_psmc () para obtener una definicin de una garrapata.
Pasar un 0 o FALSO para los eventos desactivar el borrado de un borde.
Disponibilidad:

Todos los dispositivos equipados con el mdulo PSMC.

Se requiere:
Ejemplos:
Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_psmc (),psmc_deadband(),psmc_sync(),psmc_modulacin (),psmc_shutdown(),


psmc_duTy (),psmc_freq_adjust (),psmc_pins()

psmc_deadband ()
Syntax: psmc_deadband (unit, rising_edge, falling_edge);
parmetros:

unidad yos el nmero de unidad PSMC 1-4


rising_edge yos El tiempo de banda muerta en las garrapatas despus de la seal se
activa. Si esta funcin no se conoce, se utiliza 0.
falling_edge yos El tiempo de banda muerta en las garrapatas despus de la seal pasa
a inactiva. Si esta funcin no se conoce, se utiliza 0.

Devoluciones:
Funcin:

230

undefinere
This funcin establece los valores de tiempo de banda muerta. Bandas muertas son
una brecha en el tiempo en ambos lados de una seal complementaria se ven
obligados a estar inactivo. Los valores de tiempo estn en las garrapatas. Ver
setup_psmc () para obtener una definicin de una garrapata.

Funciones
integradas
Disponibilidad:

Todos los dispositivos equipados con el mdulo PSMC.

Se requiere:

Ejemplos:

undefinere

// 5 garrapata banda muerta cuando la seal se


activa. psmc_deadband (1, 5, 0);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_psmc (),psmc_sync(),psmc_blanking(),psmc_modulacin (),psmc_shutdown(),


psmc_duTy (),psmc_freq_adjust (),psmc_pins()

psmc_duty ()
Syntax: (psmc_pinsunit, pins_used, pins_active_low);

parmetros:

unidad yos el nmero de unidad PSMC 1-4


otoo yoes el momento en que la seal de garrapatas va inactivo (despus del inicio del
perodo)
dando por sentadog PSMC_EVENT_TIME el evento se ha especificado en el setup_psmc
().

Devoluciones:
Funcin:

Disponibilidad:

Indefinido
This funcin cambia el tiempo de cada (dentro del plazo) para la seal activa. Esto se
puede utilizar para cambiar el trabajo del impulso activo. Tenga en cuenta que el tiempo
no es un porcentaje ni es el tiempo de la seal est activa. Es el tiempo desde el inicio del
perodo que la seal va a ir inactivo. Si el rise_time se establece en 0, este tiempo es el
tiempo total de la seal estar activo.
Todos los dispositivos equipados con el mdulo PSMC.

Se requiere:
Ejemplos:

// Para un PWM de 10 kHz, basado en Fosc dividido por 1


// El siguiente establece el deber de
// 0% a 100% baed en la lectura ADC
while (true) {
psmc_duty (1, (read_adc () * (Int16) 10) / 25) *
(Getenv ( "RELOJ") / 1000000));
}

231

CCS C 10082015

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_psmc (),psmc_deadband(),psmc_sync(),
psmc_blanking(),psmc_modulation(),psmc_shutdown (),psmc_freq_adjust
(),psmc_pins()

psmc_freq_adjust ()
Syntax: psmc_freq_adjust (unit, freq_adjust);

parmetros:

unidad yos el nmero de unidad PSMC 1-4


freq_adjust yos el tiempo en incrementos de 16 / garrapatas aadir al perodo. El valor
puede ser 0 a 15.

Devoluciones:

Indefinido

Funcin:
Thifuncin s aade una fraccin de una garrapata al perodo de tiempo para algunos modos
de funcionamiento.

Disponibilidad:

Todos los dispositivos equipados con el mdulo PSMC.

Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_psmc (),psmc_deadband(),psmc_sync(),
psmc_blanking(),psmc_modulation(),psmc_shutdown (),psmc_dutyt (),psmc_pins()

psmc_modulation ()
Syntax: psmc_modulation (unit, opciones);

232

Funciones
integradas
parmetros:

unidad yos el nmero de unidad PSMC 1-4


Opciones mamy el arreglo con uno de los siguientes:

PSMC_MOD_OFF
PSMC_MOD_ACTIVE
PSMC_MOD_INACTIVE
PSMC_MOD_C1OUT
PSMC_MOD_C2OUT
PSMC_MOD_C3OUT
PSMC_MOD_C4OUT
PSMC_MOD_CCP1
PSMC_MOD_CCP2
PSMC_MOD_IN_PIN

The siguiente puede OR siempre con lo anterior

Devoluciones:

PSMC_MOD_INVERT
PSMC_MOD_NOT_BDF
PSMC_MOD_NOT_ACE

undefinere

Funcin:
Thifuncin s permite alguna fuente para controlar si el PWM se est ejecutando o no. El
activo / inactivo se utilizan para el software para controlar la modulacin. Las otras
fuentes de modulacin son controlados por hardware. Tambin hay opciones de invertir
las entradas y hacer caso omiso de algunas de las salidas PWM con el fin de
modulacin.
Disponibilidad:

Todos los dispositivos equipados con el mdulo PSMC.

Se requiere:
Ejemplos:
Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_psmc (),psmc_deadband(),psmc_sync(),psmc_blanking(),psmc_shutdown(),
psmc_duTy (),psmc_freq_adjust (),psmc_pins()

233

CCS C 10082015

psmc_pins ()
Syntax: (psmc_pinsunit, pins_used, pins_active_low);

parmetros:

unidad yos el nmero de unidad PSMC 1-4


used_pins yos La cualquier combinacin de las siguientes OR siempre juntos:

PSMC_A
PSMC_B
PSMC_C
PSMC_D
PSMC_E
PSMC_F
PSMC_ON_NEXT_PERIOD

Si se utiliza la ltima constante, todos los cambios realizados tengan efecto en el


prximo perodo de (a diferencia de inmediato)
pins_active_low yos un parmetro opcional. Si se utiliza, se enumeran los mismos
pines desde arriba, como los pasadores que deben tener una polaridad invertida.
Devoluciones:
Funcin:

Indefinido
Thifuncin s identific los pasadores asignados a la unidad de PSMC, la polaridad de los
pines y permite que la unidad PSMC. El registro de los tres estados para cada pin se
establece en el estado de salida.

Disponibilidad:

Todos los dispositivos equipados con el mdulo PSMC.

Se requiere:
Ejemplos:

// PWM simple, 10kHz a cabo en C0 pasador asumiendo un cristal de 20MHz


// De trabajo se establece
inicialmente en 25%
setup_psmc (1, PSMC) SOLA,
PSMC_EVENT_TIME | PSMC_SOURCE_FOSC,
nosotros (100, PSMC_EVENT_TIME, 0,
PSMC_EVENT_TIME, nosotros (25));
psmc_pins (1, PSMC_A);

Archivos de ejemplo:
UNlso Ver:

234

Ninguna

SEtup_psmc (),psmc_deadband(),psmc_sync(),
psmc_blanking(),psmc_modulation(),psmc_shutdown (),psmc_duTy (),
psmc_freq_adjust ()

Funciones
integradas

psmc_shutdown ()
Syntax: psmc_shutdown (unit, opciones, fuente, pins_high);
psmc_shutdown (unit, comandos);
parmetros:

unidad yos el nmero de unidad PSMC 1-4


Opciones mamy el arreglo con uno de los siguientes:

PSMC_SHUTDOWN_OFF
PSMC_SHUTDOWN_NORMAL
PSMC_SHUTDOWN_AUTO_RESTART

doommand mamy el arreglo con uno de los siguientes:

PSMC_SHUTDOWN_RESTART
PSMC_SHUTDOWN_FORCE
PSMC_SHUTDOWN_CHECK

source mamy el arreglo con cualquiera de los siguientes OR siempre juntos:

PSMC_SHUTDOWN_C1OUT
PSMC_SHUTDOWN_C2OUT
PSMC_SHUTDOWN_C3OUT
PSMC_SHUTDOWN_C4OUT
PSMC_SHUTDOWN_IN_PIN

pins_high yoEs cualquier combinacin de las siguientes OR siempre juntos:

Devoluciones:
Funcin:

PSMC_A
PSMC_B
PSMC_C
PSMC_D
PSMC_E
PSMC_F

No nulo si la unidad se encuentra ahora en el cierre.


Thifuncin s implementa una capacidad de apagado. cuando cualquiera de los eventos
mencionados activar el cierre unidad de voluntad PSMC y los pines de salida son bajas
conductor a menos que se enumeran en los pines que ser conducido alta.
Thopcin de reinicio automtico de correo se reiniciar cuando la condicin pasa a
inactiva, de lo contrario una llamada con el comando de reinicio debe ser utilizado. El
software se puede forzar un apagado con el mando de la fuerza.

Disponibilidad:

Todos los dispositivos equipados con el mdulo PSMC.

235

CCS C 10082015

Se requiere:
Ejemplos:
Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_psmc (),psmc_deadband(),psmc_sync(),
psmc_blanking(),psmc_modulation(),psmc_duty(),psmc_freq_adjust (),psmc_pins()

psmc_sync ()
Syntax: psmc_sync (slave_unit, master_unit, opciones);

parmetros:

slave_unit yoes el nmero de unidad PSMC 1-4 para ser controlado.


Master_unit yos la unidad nmero PSMC 1-4 para sincronizarse con
Opciones pueden ser:

PSMC_SOURCE_IS_PHASE
PSMC_SOURCE_IS_PERIOD
PSMC_DISCONNECT

The siguiente puede OR siempre con lo anterior:

Devoluciones:

PSMC_INVERT_DUTY
PSMC_INVET_PERIOD

undefinere

Funcin:
This funcin permite que una unidad PSMC (esclavo) para la sincronizacin (las
salidas) con otra unidad PSMC (el maestro).
Disponibilidad:

Todos los dispositivos equipados con el mdulo PSMC.

Se requiere:
Ejemplos:
Archivos de ejemplo:

236

Ninguna

Funciones
integradas
UNlso Ver:

SEtup_psmc (),psmc_deadband(),psmc_sync(),psmc_modulacin (),psmc_shutdown(),


psmc_duTy (),psmc_freq_adjust (),psmc_pins()

psp_output_full () psp_input_full () psp_overflow ()


Syntax: resultado = psp_output_full () =
resultado psp_input_full
() = resultado
psp_overflow ()
resultado = psp_error (); // EPMP nico resultado
= psp_timeout (); Slo // EPMP
parmetros:

Ninguna

Devoluciones:
Funcin:
y vuelta

Un 0 (FALSO) o 1 (TRUE)
Tesfunciones e comprobar el puerto Paralelo Esclavo (PSP) para las condiciones indicadas
TRUE o FALSO.

Disponibilidad:

This funcin slo est disponible en dispositivos con hardware de PSP en los chips.

Se requiere:
Ejemplos:

Nada
while (psp_output_full ());
psp_data = comando; while
(psp_input_full ()!); si
(psp_overflow ())
error = TRUE;
ms
datos = psp_data;

Archivos de ejemplo:
UNlso Ver:

ex_psp.do

SEtup_psp (),Descripcin general de PSP

putc_send () fputc_send ()
Syntax: putc_send ();
fputc_send (sTREAM);
Parmetros: Secuencia - Parmetro que especifica la corriente se define en #use RS232.
Devoluciones:

Nada
237

CCS C 10082015

Funcin:

Funcin utilizada para transmitir bytes cargados en la memoria intermedia de transmisin


a travs de RS232. Dependiendo de las opciones que se utilizan en los controles
#Utilice RS232 si la funcin est disponible y cmo funciona.
Si el uso de hardware UARTx con la opcin NOTXISR se comprobar si se transmite
actualmente. Si no transmitirla a continuacin, comprobar si hay datos en la memoria
intermedia de transmisin. Si hay datos en la memoria intermedia de transmisin que se
carga el prximo byte del buffer de transmisin en el bfer de hardware TX, a menos que
use la opcin de control de flujo CTS. En ese caso, se comprobar primero para ver si la
lnea CTS se encuentra en su estado activo antes de cargar el prximo byte del buffer de
transmisin en el bfer de hardware TX.
Si el uso de hardware UARTx con la opcin TXISR, la funcin slo est disponible si se
usa la opcin de control de flujo CTS, que pondr a prueba para ver si se habilita la
interrupcin TBEx. Si no est activado, entonces pondr a prueba para los datos en
memoria intermedia de transmisin para enviar. Si hay datos que enviar se compruebe si
la lnea de control de flujo CTS y si en su estado activo que permitir la interrupcin TBEx.
Cuando se utiliza el
Modo TXISR la interrupcin TBEx se encarga de mover datos desde la memoria
intermedia de transmisin en el bfer de hardware TX.
Si se utiliza el software RS232, slo es til si se utiliza el control de flujo CTS, se
comprobar si hay datos en memoria intermedia de transmisin para enviar. Si hay datos
que a continuacin se compruebe la lnea de control de flujo CTS, y si en su estado activo
lo har reloj a cabo el siguiente byte de datos.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#RS232 USO
#USE_RS232 (UART1, BAUDIO = 9600, TRANSMIT_BUFFER = 50, NOTXISR)
printf ( "Prueba de Bfer de transmisin");
mientras(CIERTO){
putc_send();
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

_USE_RS232 (),RCV_BUFFER_FULL (),TX_BUFFER_FULL (),TX_BUFFER_BYTES


(),GRAMOET (), Putc () RINTF (),SETUP_UART (),
Putc () _SEND

PWm_off ()
Syntax: pwm_off ([stream]);
Parmetros: Secuencia - Parmetro opcional que especifica la corriente se define en #use PWM.
Devoluciones:
Funcin:
Disponibilidad:
Se requiere:
Ejemplos:
238

Nada.

To apagar la seal PWM.


Todos los dispositivos.
#PWM USO
#NOSE PWM (SALIDA = PIN_C2, FRECUENCIA = 10 kHz, de trabajo = 25)

WHile (TRUE)
{
si (kbhit ()) {
c = getc ();

Funciones
integradas

239

CCS C 10082015

si (c== 'F')
pwm_off ();
}
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

#use_pwm,pwm_on(),pwm_set_duty_percent (),pwm_set_duTy (),pwm_set_frequency ()

PWlunes()
Syntax: pwm_on ([stream]);
Parmetros: Secuencia - Parmetro opcional que especifica la corriente se define en #use PWM.
Devoluciones:
Funcin:

Nada.
To activar la seal PWM.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#PWM USO
#Utilice PWM (SALIDA = PIN_C2, FRECUENCIA = 10 kHz, de trabajo = 25)
while (true) {
si (kbhit ()) {
c = getc ();
si (c == 'O')
pwm_on ();
}
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

#use_pwm,pwm_off (),pwm_set_duty_percent
(),pwm_set_duty,pwm_set_frequency ()

PWm_set_duty ()
Syntax: pwm_set_duty ([sTREAM],duty);
Parmetros: Secuencia - Parmetro opcional que especifica la corriente se define en #use PWM.
deber - Una variable constante o Int16 que especifica el nuevo PWM hora.
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:

240

Nada.
To cambiar el ciclo de trabajo de la seal PWM. El porcentaje del ciclo de trabajo
depende del perodo de la seal PWM. Esta funcin es ms rpido que
pwm_set_duty_percent (), pero se requiere saber cul es el periodo de la seal PWM
es.
Todos los dispositivos.
#PWM USO

Funciones
integradas
Ejemplos:

#Utilice PWM (SALIDA = PIN_C2, FRECUENCIA = 10 kHz, de trabajo = 25)

Archivos de ejemplo:
UNlso Ver:

Ninguna

#use_pwm, pwm_on,pwm_off (),pwm_set_frecuencia(),pwm_set_duty_percent ()

PWm_set_duty_percent
Syntax: pwm_set_duty_percent ([stream]), ciento
sTREAM - parmetro opcional que especifica la corriente se define en #Utilice PWM.
parmetros:
Educacin fsicarcent- un Int16 constante o variable que va de 0 a 1000 que indica el nuevo
trabajo de PWM
ciclo, D es 0% y el 1000 es 100,0%.
Devoluciones:
Nada.
Funcin:
Disponibilidad:

To cambiar el ciclo de trabajo de la seal PWM. porcentaje del ciclo de trabajo est
basada en la frecuencia actual / perodo de la seal PWM.
Todos los dispositivos.

Se requiere:
Ejemplos:

#PWM USO
#Utilice PWM (SALIDA = PIN_C2, FRECUENCIA = 10 kHz, de trabajo = 25)
pwm_set_duty_percent (500); // Set ciclo de trabajo PWM para el 50%

Archivos de ejemplo:
UNlso Ver:

Ninguna

#use_pwm,pwm_on(),pwm_off (),pwm_set_frequency (),pwm_set_duty ()

PWm_set_frequency
Syntax: pwm_set_frequency ([corriente], frecuencia);
Parmetros: Secuencia - Parmetro opcional que especifica la corriente se define en #use PWM.
frecuencia - Una variable constante o int32 especificando la nueva frecuencia PWM.
Devoluciones:
Funcin:

Nada.
To cambiar la frecuencia de la seal PWM. Advirtiendo que esto puede cambiar la
resolucin de la seal PWM.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#PWM USO
#Utilice PWM (SALIDA = PIN_C2, FRECUENCIA = 10 kHz, de trabajo = 25)
pwm_set_frequency (1000); // Establecer la frecuencia PWM a 1 kHz

Archivos de ejemplo:
UNlso Ver:

Ninguna

#use_pwm,pwm_on(),pwm_off (),pwm_set_duty_percent,pwm_set_duty ()

241

CCS C 10082015

PWm1_interrupt_active ( ) Pwm2_interrupt_active ()
pwm3_interrupt_active () pwm4_interrupt_active ()
pwm5_interrupt_active () pwm6_interrupt_active ()
Syntax:

result_pwm1_interrupt_active
(interrupt)
Result_pwm2_interrupt_active
(interrupt)
Result_pwm3_interrupt_active
(interrupt)
Result_pwm4_interrupt_active
(interrupt)
Result_pwm5_interrupt_active
(interrupt)
Result_pwm6_interrupt_active
(interrupt)

parmetros:
interrumpir - 8 bits constante o variable. Las constantes se definen en el archivo de
cabecera del dispositivo como:

Devoluciones:
Funcin:
est establecido.

PWM_DUTY_INTERRUPT
PWM_PHASE_INTERRUPT
PWM_OFFSET_INTERRUPT

TRUE si la interrupcin es activa. FALSE si interrupcin no est activo.


Tests para ver si una de las interrupciones PWM anteriores es activo, interrumpen indicador

Disponibilidad:

Los dispositivos con un mdulo de PWM de 16 bits.

Se requiere:
Ejemplos:

PWM_PERIOD_INTERRUPT

Nada
si (pwm1_interrupt_active (PWM_PERIOD_INTERRUPT))
clear_pwm1_interrupt (PWM_PERIOD_INTERRUPT);

Archivos de ejemplo:
UNlso Ver:

SEtup_pwm (), SEt_pwm_duty (),set_pwm_phase(), set_pwm_peRIOD (),SEt_pwm_offset


(),enable_pwm_interrumpir (), clear_pwm_interrumpir (), disable_pwm_interrumpir ()

qei_get_count ()
Syntax: valor = qei_get_count ([tipo]);
parmetros:
tipo - Parmetro opcional para especificar el contador de conseguir, por defecto es la
posicin del contador.
Definido en dispositivos .h archivo como:
QEI_GET_POSITION_COUNT
242

QEI_GET_VELOCITY_COUNT
Devoluciones:

Funciones
integradas

The valor de 16 bits del contador de posicin o el contador de velocidad.

243

CCS C 10082015

Funcin:

Lee el valor de 16 bits actual de la posicin o de la velocidad del contador.

Disponibilidad:

Los dispositivos que tienen el mdulo de QEI.

Se requiere:
Ejemplos:

Nada.
valor = qei_get_counter (QEI_GET_POSITION_COUNT);
valor = qei_get_counter ();
valor = qei_get_counter (QEI_GET_VELOCITY_COUNT);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_qei () , Qei_set_count (), qei_status ().

qei_status ()
Syntax: status = qei_status ();
parmetros:

Ninguna

Devoluciones:
Funcin:

Thel estado del mdulo de e QEI.


Devuelve el estado del mdulo QEI.

Disponibilidad:

Los dispositivos que tienen el mdulo de QEI.

Se requiere:
Ejemplos:

Nada.
qei_status estado = ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_qei () , Qei_set_count (), qei_get_count ().

qsort ()
Syntax: qsort (base, Nm, ancho, comparar)
Parmetros: Base: Puntero a la matriz de datos de tipo
num: Nmero de elementos
width: Ancho de elementos
doompare: Funcin que compara dos elementos

244

Funciones
integradas

Devoluciones:
Funcin:

Ninguna
Realiza el tipo de concha Metzner (no el algoritmo de ordenacin rpida). El contenido de la
matriz se clasifican en orden ascendente de acuerdo con una comparacin funcin a la
que apunta comparar.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#INCLUYE <stdlib.h>
nums int [5] = {2,3,1,5,4};
int compar (void * arg1, arg2 void *);
void main () {
qsort (nums, 5, sizeof (int), compar);
}
int compar (void * arg1, arg2 void *) {
si (* (int *) arg1 <(* (int *) arg2) return -1
else if (* (int *) arg1 == (* (int *) arg2) devuelven
0 o regrese 1;
}

Archivos de ejemplo:
UNlso Ver:

ex_qsort.c

bsearch()

rand ()
Syntax: re = rand ()

parmetros:
Devoluciones:
Funcin:
intervalo de 0 a

Ninguna
Un entero pseudo-aleatorio.
Thfuncin e rand devuelve una secuencia de nmeros enteros pseudo-aleatorios en el
RAND_MAX.

Disponibilidad:
Se requiere:
Ejemplos:

Todos los dispositivos


#INCLUYE <stdlib.h>
int i; I
= rand
();

245

CCS C 10082015

Archivos de ejemplo:
UNlso Ver:

Ninguna

srand ()

rcv_buffer_bytes ()
Syntax: valor = rcv_buffer_bytes ([sTREAM]);
sTREAM - parmetro opcional que especifica la corriente se define en #Utilice RS232.
parmetros:
Devoluciones:
Funcin:
ser recuperados.

Nmero de bytes en el bfer de recepcin que todava tienen que ser recuperados.
Funcin para determinar el nmero de bytes en el bfer de recepcin que todava tienen que

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#RS232 USO
#USE_RS232 (UART1, BAUDIO = 9600, RECEIVE_BUFFER = 100)
void main (void) {char c; (si
rcv_buffer_bytes ()> 10) c
= getc ();
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

_USE_RS232 (),RCV_BUFFER_FULL (),TX_BUFFER_FULL (),TX_BUFFER_BYTES


(),GRAMOETC (), Putc (),Printf (), SETUP_UART (),PUTC_SEND ()

rcv_buffer_full ()
Syntax: valor = rcv_buffer_full ([stream]);
sTREAM - parmetro opcional que especifica la corriente se define en #Utilice RS232.
parmetros:
Devoluciones:
Funcin:
Disponibilidad:
Se requiere:
Ejemplos:

246

TRUE si el bfer de recepcin est lleno, de lo contrario.


Funcin para poner a prueba si el bfer de recepcin est lleno.
Todos los dispositivos
#RS232 USO
#USE_RS232 (UART1, BAUDIO = 9600, RECEIVE_BUFFER = 100)
void main (void)
{char c; si
(rcv_buffer_full ())

Funciones
integradas
c = getc ();
}
Archivos de ejemplo:
UNlso Ver:

Ninguna

_USE_RS232 (),RCV_BUFFER_BYTES (),TX_BUFFER_BYTES ( ),TX_BUFFER_FULL (


),GRAMOETC (), Putc (), Printf (),SETUP_UART (),PUTC_SEND ()

read_adc ()
Syntax: valor = read_adc ([modo])
parmetros:

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Exa
mple
s:

metrooda yos un parmetro opcional. Si se usan los valores pueden ser:


ADC_START_AND_READ (continuamente toma lecturas, este es el
valor predeterminado) ADC_START_ONLY (empieza la conversin y los
rendimientos)
ADC_READ_ONLY (lee ltimo resultado de la conversin)

Ya sea un poco int 8 o 16 dependiendo de #DEVICE ADC = Directiva.


This funcin leer el valor digital del convertidor analgico a digital. Las llamadas a
setup_adc (), setup_adc_ports () y set_adc_channel () debe hacerse en algn momento
antes de que esta funcin se llama. El rango del valor de retorno depende del nmero de
bits en el patatas fritas de un convertidor A / D y el ajuste en el #DEVICE ADC = Directiva
de la siguiente manera:
#DISPOSITIVO 8 bits 10 bits 11 bits 12 bits 16 bits
ANUNCIOC = 8
00-FF 00-FF-FF 00 00 FF-00-FF
ANUNCIOC = 10
x x 0-3FF 0-3FF x
ANUNCIOC = 11
x x x x 0-7FF
ANUNCIOC = 16
0FF00-0-FFC0 0 0 FFEO-FFF0 0-FFFF
Nota: x no est definido
This funcin slo est disponible en los dispositivos de hardware con A / D.
Pin constantes se definen en los dispositivos .h archivo.
setup_adc (ADC_CLOCK_INTERNAL);
setup_adc_ports (ALL_ANALOG);
set_adc_channel (1);
mientras que (entrada (PIN_B0)) {
Delay_ms (5000);
valor = read_adc ();
printf ( "valor A / D = 2x% \ n \ r", valor);
}
read_adc (ADC_START_ONLY);
dormir(); valor = read_adc
(ADC_READ_ONLY);

Arch
ivos
Exa
mple
:

ex_admm.do,ex_14kad.do

247

CCS C 10082015

UNls
o
Ver:

SEtup_adc (),SEt_adc_channel (),setup_adc_po(RTS),#DISPOSITIVO,ADC


Visin de conjunto

read_bank ()
Syntax: valor = read_bank (banco,offset)
parmetros:

Devoluciones:
Funcin:

Disponibilidad:

Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

banco yos el banco RAM fsica 1-3 (dependiendo del dispositivo)


compensar yos el desplazamiento en la memoria RAM de usuario para ese banco
(empieza en 0),
int 8 bit
Leer un byte de datos del rea RAM de usuario del banco de memoria especificada.
Esta funcin puede utilizarse en algunos dispositivos donde el acceso completo
RAM por variables de automviles no es eficiente. Por ejemplo, establecer el
tamao del puntero de 5 bits en el chip PIC16C57 generar el cdigo de la ROM
ms eficiente. Sin embargo, las variables de automviles no pueden estar por
encima
1FH. En vez de ir a los punteros de 8 bits, puede guardar ROM mediante el uso de
esta funcin para leer desde los bancos de difcil acceso. En este caso, el banco
puede ser 1-3 y el desplazamiento puede ser de 0-15.
Todos los dispositivos, pero slo es til en las partes de
PCB con la memoria sobre 1Fh y partes PCM con la memoria
ms de FFh.
Nada
// Ver write_bank () ejemplo para ver
// Cmo conseguimos los datos
// Mueve los datos de la memoria intermedia de LCD
i = 0;
do {c = read_bank (1,
i ++); si (c! =
0x13)
lcd_putc
(c);
} While (c = 0x13!);

ex_psp.do
write_bank ()y las "Preguntas y respuestas comunes" para obtener ms
informacin.

read_calibration ()
Syntax: valor = read_calibration (norte)
248

Funciones
integradas

parmetros:

norteyos un desplazamiento en la memoria de calibracin a partir de las 0

249

CCS C 10082015

Devoluciones:
Funcin:
calibracin.
Disponibilidad:
Se requiere:
Ejemplos:
Archivos de ejemplo:
UNlso Ver:

Un byte de 8 bits
Thfuncin de correo read_calibration lee la ubicacin "n" de la memoria 14000-

This funcin slo est disponible en la PIC14000.


Nada
aleta = read_calibration (16);
ex_14kad.do wyo 14kcal.do
Ninguna

read_configuration_memory ( )
Syntax: read_configuration_memory ([Desplazamiento], ramPtr, n)
parmetros:

Devoluciones:
Funcin:
ramPtr.

ramPtr yos el puntero de destino para los resultados


de lectura
doporte yoes un nmero entero de 8 bits
compensar yoEs un parmetro opcional que especifica el desplazamiento en la
configuracin de memoria para comenzar a leer desde, compensado por defecto
en cero si no se utiliza.
undefinere
Para PIC18-Lee norteportes de la memoria de configuracin y guarda los valores de
Para Enhanced16 funcin de los dispositivos lee regiones de ID de usuario,
ID de dispositivo y la memoria de configuracin.

Disponibilidad:
Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

250

Todos los dispositivos PIC18 Flash y Enhanced16


Nada
datos int [6];
read_configuration_memory (datos, 6);

Ninguna
write_configuration_memory (),read_program_memory (),configuracin de la memoria
overview,

Funciones
integradas

read_eeprom ()
Syntax: valor = read_eeprom (aadirO prima )

parmetros:
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

unddress yos un entero de 8 bits o 16 bits dependiendo de la parte


Un int 8 bit
Lee un byte de la direccin de la EEPROM de datos especificado. La direccin
comienza en 0 y el rango depende de la parte.
This comando es slo para las partes con EEPROM incorporadas
Nada
#define LAST_VOLUME 10
= volumen read_EEPROM (LAST_VOLUME);

Ninguna
write_eeprom (),Datos de la EEPROM general

read_extended_ram ()
Syntax: read_extended_ram (pgina, Direccin, datos, cuentan);
Parmetros: pgina - La pgina en la memoria RAM adicional para leer desde
unddress - La direccin de la pgina seleccionada para iniciar la lectura desde
datos - Puntero a la variable para volver a los datos
doporte - El nmero de bytes a leer (0-32.768)
Devoluciones:
Funcin:
Disponibilidad:
Se requiere:
Ejemplos:

Archivos de ejemplo:

Indefinido
To leer datos de la memoria RAM ampliada de la PIC.
On dispositivos con ms de 30K de memoria RAM.
Nada
INT8 datos sin signo [8];
read_extended_ram (1,0x0000, datos, 8);

Ninguna

251

CCS C 10082015

UNlso Ver:

read_extended_ram (), General RAM extendida

read_program_memory () read_external_memory ()
Syntax: READ_PROGRAM_MEMORY (aadirO prima,dataptr,Count);
READ_EXTERNAL_MEMORY (aadirO
prima,dataptr,Count);
parmetros:

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:
Eeprom

unddress yoS 16 bits en partes PCM y 32 bits en partes PCH. El bit menos
significativo siempre debe ser 0 en el PCM.
DataPtr yos un puntero a una o ms bytes.
doporte yos un entero de 8 bits en PIC16 y 16 bits para PIC18
undefinere
lee doporte portes de la memoria de programa en anunciovestir a la RAM en
DataPtr. OTH B de estas funciones operan exactamente de la misma.
ONLY los dispositivos que permiten lee de la memoria del programa.
Nada
char buffer [64];
read_external_memory (0x40000, tampn, 64);

Ninguna
wmemoria de programa rito (), visin general de memoria externa ,Programa general

read_high_speed_adc ()
Syntax: read_high_speed_adc (pair,modo,resultado); // Iniciar individual y leer ni
// Slo lectura
read_high_speed_adc (pair,resultado); // iniciar individual y leer
read_high_speed_adc (pair); // nica carrera individual
read_high_speed_adc (modo,resultado); // Inicio Global y leer o
// Slo lectura
read_high_speed_adc (resultado); // Inicio Global y leer
read_high_speed_adc (); // Mundial slo se inicia
Parmetros: par - Parmetro opcional que determina el nmero de pares de ADC para iniciar y / o leer. Los
valores vlidos son del 0 al nmero total de pares de ADC. 0 en marcha y / o lee par
ADC AN0 y AN1, 1 en marcha y / o lee ADC AN2 par y AN3, etc. Si se omite
entonces un comienzo global y / o leer se llevar a cabo.
metrooda - Parmetro opcional, si se utilizan los valores pueden ser:

ADC_START_AND_READ (inicia la conversin y lee resultado)


252

Funciones
integradas

ADC_START_ONLY (se inicia la conversin y los rendimientos)


ADC_READ_ONLY (lee resultado de la conversin)
resultado - Puntero para volver conversin ADC tambin. El parmetro es opcional,
si no se utiliza la funcin read_fast_adc () slo puede realizar un arranque.
Devoluciones:
Funcin:

Indefinido
This funcin se utiliza para iniciar una conversin de analgico a digital y
/ o leer el valor digital cuando la conversin se ha completado. Las
llamadas a setup_high_speed_adc () y setup_high_speed_adc_pairs
deben hacerse en algn momento () antes de que esta funcin se
llama.
when el uso de esta funcin para realizar un arranque individual y leer
o inicio individual solamente, la funcin asume que la fuente de
disparo de la pareja se establece en
INDIVIDUAL_SOFTWARE_TRIGGER.
when usar esta funcin para realizar un arranque global y leer, inicio
global slo, o leer global solo. La funcin ser realizar los siguientes
pasos:
1. Determinar qu pares de ADC se establecen para
GLOBAL_SOFTWARE_TRIGGER.
2. Desactive las banderas correspondientes listas (si haciendo un comienzo).
3. Establecer el gatillo de software global (si haciendo un comienzo).
4. Leer los pares ADC correspondientes con el fin de
menor a mayor (si el hacer una lectura).
5. Desactive las banderas correspondientes listas (si hacer una lectura).
when usar esta funcin para realizar una persona de slo lectura. La
funcin se puede leer el resultado ADC desde cualquier fuente de
disparo.

Disponibilidad:
Se requiere:
Ejemplos:

ONLy en los dispositivos dsPIC33FJxxGSxxx.


Las constantes se definen en el dispositivo .h.
// Iniciar individual y leer
valores de Int16 [2];
setup_high_speed_adc (ADC_CLOCK_DIV_4); setup_high_speed_adc_pair (0,
INDIVIDUAL_SOFTWARE_TRIGGER); read_high_speed_adc (0, resultado); //
Inicia la conversin de AN0 y AN1 y
vveres
// Resultado en result [0] y el resultado [1]
// Inicio Global y lea
el resultado Int16 [4];
setup_high_speed_adc (ADC_CLOCK_DIV_4);
setup_high_speed_adc_pair (0, GLOBAL_SOFTWARE_TRIGGER);
setup_high_speed_adc_pair (4, GLOBAL_SOFTWARE_TRIGGER);
read_high_speed_adc (resultado); // Inicia la conversin de
AN0, AN1,
// AN8 y AN9 y

253

CCS C 10082015
// tiendas resultado en result [0], como
resultado // [1],
resultar [2]

254

Funciones
integradas
y dar como resultado [3]

Archivos de ejemplo:
UNlso Ver:

Ninguna
SEtup_high_speed_adc (),SEtup_high_speed_adc_pair (),high_speed_adc_done()

read_rom_memory ()
Syntax: READ_ROM_MEMORY (direccin,dataptr,Count);
parmetros:

unddress yos 32 bits. El bit menos significativo debe ser siempre 0.


DataPtr yos un puntero a una o ms bytes.
doporte yoes un entero de 16 bits

Devoluciones:
Funcin:

undefinere
lee doporte portes de la memoria de programa en anunciovestir a DataPtr. Debido
al tamao de instruccin de programa de 24 bits en los dispositivos de PCD, tres
bytes son ledos de cada ubicacin de la direccin.

Disponibilidad:

ONLY los dispositivos que permiten lee de la memoria del programa.

Se requiere:
Ejemplos:

Nada
char buffer [64];
read_program_memory (0x40000, tampn, 64);

Archivos de ejemplo:
UNlso Ver:
rograma

Ninguna
write_program_eeprom () ,write_eeprom (),read_eeprom (),Pvisin general EEPROM

read_sd_adc ()
Syntax: valor = read_sd_adc ();
parmetros:
Devoluciones:
Funcin:

Ninguna
Un signo de 32 bits int.
To sondear el bit SDRDY y si se fija devolver el valor de 32 bits firmado almacenada
en los registros y SD1RESH SD1RESL, y borrar el bit SDRDY. El resultado devuelto
depende de los ajustes realizados con la funcin setup_sd_adc (), pero siempre ser
un int32 firmados
ValuE con los bits ms significativos de ser significativa. Consulte la Seccin 66,
de 16 bits Sigma-Delta convertidor A / D, del Manual de Referencia de la familia
PIC24F para obtener ms informacin sobre el formato del resultado del mdulo
y.
255

CCS C 10082015

Disponibilidad:
mdulo.
Ejemplos:

ONLdispositivos de Y con un Sigma-Delta Convertidor Analgico a Digital (SD ADC)

Value = read_sd_adc ()

Archivos de ejemplo:
UNlso Ver:

Ninguna
SEtup_sd_adc (),set_sd_adc_calibracionar(),set_sd_adc_channel()

realloc ()
Syntax: realloc (ptr,tamao)
parmetros:

Devoluciones:
contrario devuelve null.
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

ptr yos un puntero nulo o un puntero previamente devuelto por calloc o malloc o
funcin realloc, el tamao es un nmero entero que representa el nmero de
exentos que se asignar.
Un puntero a la memoria asignada posiblemente movido, en su caso. De lo

Thfuncin de correo realloc cambia el tamao del objeto apuntado por ptr al tamao
especificado por el tamao. El contenido del objeto estarn sin cambios hasta el
menor de los nuevos y viejos tamaos. Si el nuevo tamao es ms grande, el valor
del espacio recin asignado es indeterminado. Si ptr es un puntero nulo, la funcin se
comporta como realloc funcin malloc para el tamao especificado. Si el PTR no
coincide con un puntero anteriormente devuelto por el calloc, malloc o realloc, o si el
espacio se ha desasignado por una llamada a la funcin libre o realloc, el
comportamiento no est definido. Si el espacio no puede ser asignado, el objeto
Pointed por ptr no se ha modificado. Si el tamao es cero y el PTR no es un
puntero nulo, el objeto es ser liberado.
Todos los dispositivos
#INCLUYE <stdlibm.h>
int * FPR; FPR =
malloc (10);
realloc (FPR,
20)
// IPTR apuntar a un bloque de memoria de 20 bytes, si est disponible.

Archivos de ejemplo:
UNlso Ver:

256

Ninguna
malloc(),gratis(),caloc()

Funciones
integradas

release_io ()
Syntax: release_io ();
parmetros:
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

ninguna
nocosa
Thfuncin de correo libera los pines de E / S despus de que el dispositivo se
despierta de un sueo profundo, permitiendo que el estado de los pines de E / S para
cambiar
Los dispositivos con un mdulo de sueo profundo.
Nada
Int16 sin firmar reinician;
reinicio = restart_cause ();
si (== reiniciar RTC_FROM_DS)
release_io ();

Archivos de ejemplo:
UNlso Ver:

Ninguna
dormir()

reset_cpu ()
Syntax: reset_cpu ()
parmetros:
Devoluciones:
Funcin:
PCB y el PCM

Ninguna
This funcin no vuelve nunca
This es un borrado general del dispositivo de propsito. Se saltar a la posicin 0 en el
Pensilvaniaestrategia en tiempo real y tambin reiniciar los registros de estado de
encendido en la PIC18XXX.

Disponibilidad:
Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

Todos los dispositivos


Nada
si (la suma de comprobacin! = 0)
reset_cpu ();

Ninguna
Ninguna

257

CCS C 10082015

restart_cause ()
Syntax: valor = restart_cause ()
parmetros:

Ninguna

Devoluciones:

Un valor que indica la causa del ltimo reinicio del procesador. Los valores
reales dependen del dispositivo. Vea el archivo .h dispositivo para valores
especficos para un dispositivo especfico. Algunos valores de ejemplo son:
WDT_FROM_SLEEP, WDT_TIMEOUT, MCLR_FROM_SLEEP y
NORMAL_POWER_UP.

Funcin:

Devuelve la causa del ltimo reinicio del procesador.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

Las constantes se definen en el archivo de los dispositivos .h.


interruptor (restart_cause ()) {
WDT_FROM_SLEEP caso:
WDT_TIMEOUT caso:
handle_error
();
}

Archivos de ejemplo:

ex_wdt.c

UNlso Ver:

restart_wdt (),reset_cpu ()

restart_wdt ()
Syntax: restart_wdt ()
parmetros:
Devoluciones:
Funcin:

Ninguna
undefinere
Reinicia el temporizador de vigilancia. Si est activado el temporizador de
vigilancia, esto se debe llamar peridicamente para evitar que el procesador de
la reposicin.
Thtemporizador de vigilancia electrnica se utiliza para provocar un
restablecimiento de hardware si el software parece estar atascado.
Thtemporizador electrnico debe estar habilitado, el tiempo de espera
establecido y el software debe reiniciar peridicamente el temporizador. Estos
se realizan de manera diferente en las partes de PCB / PCM y PCH de la
siguiente manera:

258

Funciones
integradas
PCB / PCH PCM
Habilitar deshabilitar #fusibles setup_wdt ()
tiempo de espera
SEtup_wdt () #fuses
reiniciar
restart_wdt () restart_wdt ()
Disponibilidad:
Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

Todos los dispositivos


#FUSIBLES
#fuses WDT ejemplo PCB / PCM //
// Ver setup_wdt para
una
// Ejemplo PIC18
main () {setup_wdt
(WDT_2304MS); while
(true) {
restart_wdt ();
perform_activity ();
}
}

ex_wdt.c
#FUSIBLES,setup_wdt (),WDT o Watch Dog Timer general

girar a la izquierda( )
Syntax: rotate_left (direccin,porTES)
parmetros:

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

unddress yos un puntero a la memoria


bytes yos un recuento del nmero de bytes que trabajar.
undefinere
Gira un poco a travs de una matriz o estructura. La direccin puede ser un
identificador de un vector o una direccin de un byte o estructura (como & datos). Bit
0 del byte ms bajo en la memoria RAM se considera el LSB.
Todos los dispositivos
Nada
x = 0x86;
rotate_left (y x, 1);
// X ahora se 0x0D

Ninguna
Gira a la derecha(),shift_left (),shift_right ()

251

CCS C 10082015

Gira a la derecha( )
Sintaxis:
parmetros:

Devoluciones:
Funcin:

Gira a la derecha (direccin,porTES)


unddress yos un puntero a la memoria,
bytes yos un recuento del nmero de bytes que trabajar.
undefinere
Gira un poco a travs de una matriz o estructura. La direccin puede ser un
identificador de un vector o una direccin de un byte o estructura (como & datos). Bit
0 del byte ms bajo en la memoria RAM se considera el LSB.

Disponibilidad:

Todos los dispositivos

Se requiere:

Nada

Ejemplos:struct {
int cell_1: 4;
int cell_2: 4;
int cell_3: 4;
int cell_4: 4; }
clulas; rotate_right (y
clulas, 2); rotate_right
(y clulas, 2);
rotate_right (y clulas,
2); rotate_right (y
clulas, 2);
// Cell_1-> 4, 2-> 1, 3-> 2 y 4-> 3

example Archivos:
Ver tambin:

Ninguna
girar a la izquierda(),shift_left (),shfi t_right ()

rtc_alarm_read ()
Syntax: rtc_alarm_read (ydatetime);
parmetros:
alarma en el

fecha y hora- Una estructura que contendr los valores que se han escrito para la
RTCC mdulo.
Estructura que se utiliza en las funciones de lectura y escritura se definen en
el archivo de cabecera dispositivo como rtc_time_t

Devoluciones:

252

voire

Funcin:

Funciones
Lee la fecha y hora de la alarma en el mdulo de RTCC para integradas
estructurar datetime.

251

Funciones
integradas
Disponibilidad:
Se requiere:
Ejemplos:
Archivos de ejemplo:
UNlso Ver:

Los dispositivos que tienen el mdulo de RTCC.


Nada.
rtc_alarm_read (y de fecha y hora);

Ninguna
rtc_read (),rtc_alarm_read (),rtc_alarm_write (),setup_rtc_alarm (),rtc_write
(),SEtup_rtc ()

rtc_alarm_write ()
Syntax: rtc_alarm_write (ydatetime);
parmetros:
alarma en el

fecha y hora- Una estructura que contendr los valores que se han escrito para la
RTCC mdulo.
Estructura que se utiliza en las funciones de lectura y escritura se definen en el
archivo de cabecera dispositivo como rtc_time_t.

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:
Archivos de ejemplo:
UNlso Ver:

voire
WRITES la fecha y la hora de la alarma en el mdulo RTCC como se especifica en la
fecha y hora estructura.
Los dispositivos que tienen el mdulo de RTCC.
Nada.
rtc_alarm_write (y de fecha y hora);

Ninguna
rtc_read (),rtc_alarm_read (),rtc_alarm_write (),setup_rtc_alarm (),rtc_write
(),SEtup_rtc ()

253

CCS C 10082015

rtc_read ()
Syntax: rtc_read (ydatetime);
parmetros:

fecha y hora- Una estructura que contendr los valores devueltos por el mdulo RTCC.
Estructura que se utiliza en las funciones de lectura y escritura se definen en el
archivo de cabecera dispositivo como rtc_time_t.

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

voire
Lee el valor actual de la hora y la fecha del mdulo RTCC y almacena la fecha y
hora estructura.
Los dispositivos que tienen el mdulo de RTCC.
Nada.
rtc_read (y de fecha y hora);

Archivos de ejemplo:
UNlso Ver:

ex_rtcc.c
rtc_read (),rtc_alarm_read (),rtc_alarm_write (),setup_rtc_alarm (),rtc_write
(),SEtup_rtc ()

rtc_write ()
Syntax: rtc_write (ydatetime);
parmetros:
mdulo RTCC.

fecha y hora- Una estructura que contendr los valores que deben escribirse en el

Estructura que se utiliza en las funciones de lectura y escritura se definen en el


archivo de cabecera dispositivo como rtc_time_t.
Devoluciones:
Funcin:
estructura.
Disponibilidad:
Se requiere:
Ejemplos:
Archivos de ejemplo:

254

voire
WRITES la fecha y hora para el mdulo RTCC como se especifica en la fecha y hora

Los dispositivos que tienen el mdulo de RTCC.


Nada.
rtc_write (y de fecha y hora);

ex_rtcc.c

Funciones
integradas
UNlso Ver:

rtc_read () ,rtc_alarm_read () ,rtc_alarm_write () ,SEtup_rtc_alarm () ,rtc_write


(),SEtup_rtc ()

rtos_await ()
The RTOS slo se incluye en los paquetes de PCW, PCWH y software PCWHD.
Syntax: rtos_await (EXPRE)
parmetros:

expre yos una expresin lgica.

Devoluciones:
Funcin:

Ninguna
Thifuncin s slo puede usarse en una tarea de RTOS. Esta funcin espera expre
para ser verdad antes de la ejecucin del resto del cdigo de la tarea RTOS de
continuar. Esta funcin permite a otras tareas para ejecutar la tarea mientras
espera a que expre tO sea cierto.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#USO RTOS
rtos_await (kbhit ());

UNlso Ver:

Ninguna

rtos_disable ()
The RTOS slo se incluye en los paquetes de PCW, PCWH, y software PCWHD.
Syntax: rtos_disable (tarea)
parmetros:
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:

tarea yos el identificador de una funcin que se utiliza como una tarea RTOS.
Ninguna
This funcin desactiva una tarea que hace que la tarea no se ejecutar hasta
habilitado por rtos_enable (). Todas las tareas son activadas por defecto.
Todos los dispositivos
#USO RTOS

255

CCS C 10082015

Ejemplos:
UNlso Ver:

rtos_disable (toggle_green)

RTOS permiten ()

rtos_enable ()
The RTOS slo se incluye en los paquetes de PCW, PCWH, y software PCWHD.
Syntax: rtos_enable (tarea)
parmetros:

tarea yos el identificador de una funcin que se utiliza como una tarea RTOS.

Devoluciones:
Funcin:

Ninguna
This funcin permite a una tarea para ejecutar en l es el ndice especificado.

Disponibilidad:
Se requiere:
Ejemplos:
UNlso Ver:

Todos los dispositivos


#USO RTOS
rtos_enable (toggle_green);

RTOS desactivar ()

rtos_msg_poll ()
The RTOS slo se incluye en los paquetes de PCW, PCWH y software PCWHD.
Syntax: i = rtos_msg_poll ()
parmetros:
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:

256

Ninguna
Un entero que especifica cuntos mensajes hay en la cola.
This funcin slo se puede utilizar dentro de una tarea RTOS. Esta funcin
devuelve el nmero de mensajes que estn en la cola para la tarea que la
funcin rtos_msg_poll () se utiliza en.
Todos los dispositivos
#USO RTOS

Funciones
integradas

Ejemplos:
UNlso Ver:

si (rtos_msg_poll ())

RTOS Enviar mensaje (),RTOS msg leer ()

rtos_msg_read ()
The RTOS slo se incluye en los paquetes de PCW, PCWH y software PCWHD.
Syntax: b = rtos_msg_read ()
parmetros:
Devoluciones:
Funcin:
siguiente

Ninguna
Un byte que es un mensaje para la tarea.
This funcin slo se puede utilizar dentro de una tarea RTOS. Esta funcin lee en la
(Mensaje) de la cola para la tarea que la funcin rtos_msg_read () se utiliza en.

Disponibilidad:
Se requiere:
Ejemplos:

UNlso Ver:

Todos los dispositivos


#USO RTOS
si (rtos_msg_poll ()) {
b = rtos_msg_read ();

RTOS sondeo msg (),RTOS Enviar mensaje ()

rtos_msg_send ()
The RTOS slo se incluye en los paquetes de PCW, PCWH y software PCWHD.
Syntax: rtos_msg_send (tarea, byte)
parmetros:
RTOS

tarea yos el identificador de una funcin que est siendo utilizado como una tarea
byte yoEs el byte para enviar a tarea uns un mensaje.

Devoluciones:
Funcin:
llamado.

Ninguna
This funcin se puede utilizar en cualquier momento despus rtos_run () ha sido
This funcin enva un mensaje largo bytes (porte) A la tarea identificado por tarea.

Disponibilidad:
Se requiere:

Todos los dispositivos


#USO RTOS
257

CCS C 10082015

Ejemplos:

UNlso Ver:

si (kbhit ())
{
rtos_msg_send (eco, getc ());
}

rtos_msg_poll (),rtos_msg_read ()

rtos_overrun ()
The RTOS slo se incluye en los paquetes de PCW, PCWH y software PCWHD.
Syntax: rtos_overrun ([tarea])
parmetros:

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:
UNlso Ver:

tarea yos un parmetro opcional que es el identificador de una funcin que se


utiliza como una tarea RTOS
Un 0 (FALSO) o 1 (TRUE)
This funcin devuelve TRUE si la tarea especificada tom ms tiempo para realizar
de lo que se le asign. Si se especifica ninguna tarea, devuelve TRUE si cualquier
tarea se ejecut sobre l es
Alloted tiempo de ejecucin.
Todos los dispositivos
#USO RTOS (estadsticas)
rtos_overrun ()

Ninguna

rtos_run ()
The RTOS slo se incluye en los paquetes de PCW, PCWH, y software PCWHD.
Syntax: rtos_run ()
parmetros:
Devoluciones:
Funcin:

258

Ninguna
Ninguna
Thila funcin s comienza la ejecucin de todas las tareas RTOS habilitados. Esta
funcin controla la ejecucin de las tareas RTOS a la tasa asignada para cada
tarea. Esta funcin devolver slo cuando rtos_terminate () se llama.

Funciones
integradas
Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#USO RTOS
rtos_run ()

UNlso Ver:

RTOS terminar ()

rtos_signal ()
The RTOS slo se incluye en los paquetes de PCW, PCWH y software PCWHD.
Syntax: rtos_signal (sem)
parmetros:

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:
UNlso Ver:

SEmetroyos una variable global que representa la disponibilidad actual de


un recurso compartido de sistema (un semforo).
Ninguna
Thifuncin s slo puede ser utilizado por una tarea RTOS. Este incrementos de
funcin SEmetropara dejar en espera tareas saben que un recurso compartido est
disponible para su uso.
Todos los dispositivos
#USO RTOS
rtos_signal (uart_use)

espera RTOS ()

rtos_stats ()
The RTOS slo se incluye en los paquetes de PCW, PCWH y software PCWHD.
Synimpuestos: rtos_stats (tarea, y stat)
parmetros:

tarea yos el identificador de una funcin que se utiliza como una tarea
RTOS.
shacer encaje yoEs una estructura que
contiene lo siguiente:
srtos_stas_struct truct {
unsignetask_total_ticks d Int32; // Nmero de garrapatas la tarea tiene
//usado
unsignetask_min_ticks d Int16; // El nmero mnimo de garrapatas
//usado
unsignetask_max_ticks d Int16; // El nmero mximo de garrapatas
259

CCS C 10082015

};

//utiliza
rre
unsigned Int16 hns_per_tick; // Nos = (ticks * hns_per_tick) / 10

Devoluciones:
Indefinido
Funcin:

This funcin devuelve los datos estadsticos para un determinado tarea.

Disponibilidad:

Todos los dispositivos

Se requiere:

#USO RTOS (estadsticas)

Ejemplos:

rtos_stats (eco, y las estadsticas)

UNlso Ver:

Ninguna

rtos_terminate ()
The RTOS slo se incluye en los paquetes de PCW, PCWH y software PCWHD.
Syntax: rtos_terminate ()
parmetros:

Ninguna

Devoluciones:
Funcin:

Ninguna
This funcin termina la ejecucin de todas las tareas RTOS. La ejecucin del programa
continuar con la primera lnea de cdigo despus de la llamada rtos_run () en el
programa. (Esta funcin hace que rtos_run () para volver.)

Disponibilidad:

Todos los dispositivos

Se requiere:

#USO RTOS

Ejemplos:

rtos_terminate ()

UNlso Ver:

plazo RTOS ()

rtos_wait ()
The RTOS slo se incluye en los paquetes de PCW, PCWH y software PCWHD.
Syntax: rtos_wait (sem)
parmetros:
compartido
260

SEmetroyos una variable global que representa la disponibilidad actual de un

Funciones
integradas
sysrecursos TEM (un semforo).
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:
UNlso Ver:

Ninguna
Thifuncin s slo puede ser utilizado por una tarea RTOS. Esta funcin espera
SEmetroa ser mayor que 0 (recurso compartido est disponible), entonces se
decrementa SEmetropara reclamar el uso de
el recurso compartido y contina la ejecucin del resto del cdigo de la tarea RTOS.
Esta funcin permite otras tareas a ejecutar mientras que la tarea espera a que el
recurso compartido
estar disponible.
Todos los dispositivos
#USO RTOS
rtos_wait (uart_use)

seal de RTOS ()

rtos_yield ()
The RTOS slo se incluye en los paquetes de PCW, PCWH y software PCWHD.
Syntax: rtos_yield ()
parmetros:
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

UNlso Ver:

Ninguna
Ninguna
Thifuncin s slo puede usarse en una tarea de RTOS. Esta funcin detiene la
ejecucin de la tarea actual y devuelve el control del procesador para rtos_run ().
Cuando la siguiente tarea se ejecuta, se iniciar la ejecucin es en
la lnea de cdigo despus de la rtos_yield ().
Todos los dispositivos
#USO RTOS
rendimiento (void)
{
printf ( "Ceder ... \ r \ n");
rtos_yield ();
printf ( "Ejecucin de cdigo despus de la deformacin \ r \ n");
}

Ninguna

261

CCS C 10082015

set_adc_channel ()
Syntax: set_adc_channel (chanorte[,neg]))
parmetros:

doHan yoes el nmero de canales para seleccionar. Los nmeros de canales


comienzan en 0 y se etiquetan en la ficha de datos de AN0, AN1. Para los
dispositivos con un diferencial de ADC se establece el canal positivo a utilizar.
neg yos opcional y se utiliza para los dispositivos con solamente un ADC de
diferencial. Se ajusta el canal negativo de usar, los nmeros de canal pueden ser de 0
a 6 o VSS. Si no se utiliza ningn parmetro del canal negativo se ajustar a VSS por
defecto.

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

undefinere
Especifica el canal a utilizar para la llamada siguiente read_adc (). Tenga en cuenta que
tendr que esperar un tiempo corto despus de cambiar el canal antes de poder
obtener una lectura vlida. El tiempo vara dependiendo de la impedancia de la fuente
de entrada. En 10us en general es bueno para la mayora de aplicaciones. No es
necesario cambiar el canal antes de cada lectura si el canal no cambia.
This funcin slo est disponible en los dispositivos de hardware con A / D.
Nada
set_adc_channel (2);
delay_us (10);
valor = read_adc ();

ex_admm.do
read_adc (),SEtup_adc (),SEtup_adc_ports (),ADC general

set_analog_pins ()
Syntax: (set_analog_pinsalfiler, Pin, pin, ...)
parmetros:

Devoluciones:
Funcin:

262

alfiler - PIN para que como un pin analgico. Botones se definen en el archivo .h del
dispositivo. El valor real es una direccin de bit. Por ejemplo, el bit 3 del puerto A en la
direccin 5, tendra un valor de
5* 8 + 3 o 43. Esto se define de la siguiente manera:
#define PIN_A3 43
undefinere
To establecer qu pines son analgicos y digitales. Uso de la funcin depende de
dispositivo tiene mtodo para fijar alfileres para analgicas o digitales. Para los
dispositivos con ANSELx, siendo X la letra puerto, registra se utiliza la funcin como se
ha descrito anteriormente. Para todos los dems dispositivos de la funcin trabaja
igual que la funcin setup_adc_ports ().

Funciones
integradas
Consulte la SEtup_adc_ports () page para la documentacin sobre cmo utilizar.
Disponibilidad:
Se requiere:
Ejemplos:

On todos los dispositivos con un Convertidor Analgico a Digital


Nada
set_analog_pins (PIN_A0, PIN_A1, PIN_E1, PIN_B0, PIN_B5);

Archivos de ejemplo:
UNlso Ver:

SEtup_adc_reference (),SEt_adc_channel (),read_adc (),SEtup_adc


(),SEtup_adc_ports (),
ADC general

scanf ()
Syntax: scanf (csTring); scanf (csTring, los valores ...)
Fscanf (sTREAM, cstring, los
valores ...)
parmetros:

csTring yos una cadena constante.


Virginialues yos una lista de variables separadas por comas.
sTREAM yos un identificador de flujo.

Devoluciones:

Funcin:

0 si se ha producido un fallo, de lo contrario, devuelve el nmero de indicadores


de conversin que se leyeron en, ms el nmero de cadenas constantes ledo en.
Lee en una cadena de caracteres de los pasadores estndar RS-232 y formatea la
cadena de acuerdo a los especificadores de formato. El carcter especificador de
formato (%) que se utiliza dentro de la cadena indica que una especificacin de
conversin que se debe hacer y el valor se va a guardar en la variable argumento
correspondiente. Una entrada %% voluntad el smbolo%. Reglas de formato para el
especificador de formato de la siguiente manera:
Si fscanf () se utiliza, entonces el flujo especificado se utiliza, donde scanf () por
defecto es STDIN (el ltimo RS232 USO).
Formato:
Thformato electrnico toma la forma genrica% nt. norteyoes una opcin y puede ser
1 a 99 que especifica el ancho de campo, el nmero de caracteres a ser introducida.
tyos el tipo y tal vez uno de los siguientes:
do

Mamtches una secuencia de caracteres del nmero especificado por


el ancho del campo (1 si no se especifica un ancho de campo). El
argumento correspondiente ser un puntero al carcter inicial de
una matriz el tiempo suficiente para aceptar la secuencia.

smatches una secuencia de caracteres sin espacios en blanco. los

263

CCS C 10082015

correspondientes argumento ser un puntero al carcter inicial de


una matriz el tiempo suficiente para aceptar la secuencia y un
carcter nulo de terminacin, que se aadir automticamente.
u

Mamtches un entero decimal sin signo. El argumento


correspondiente ser un puntero a un entero sin signo.

Lu

Mamtches un entero largo sin signo decimal. El argumento


correspondiente ser un puntero a un entero largo sin signo.

re

Mamtches un entero decimal con signo. El argumento


correspondiente ser un puntero a un entero con signo.

Ld

Mamtches un entero decimal larga firmado. El argumento


correspondiente ser un puntero a un entero largo firmado.

Mamtches un entero octal con o sin signo. El argumento


correspondiente ser un puntero a un entero con o sin signo.

Lo

Mamtches un entero octal largo con o sin signo. El argumento


correspondiente ser un puntero a un entero largo con o sin signo.

xoX

Mamtches un entero hexadecimal. El argumento correspondiente ser


un puntero a un entero con o sin signo.

Lx o LX

Mamtches un entero largo hexadecimal. El argumento correspondiente


ser un puntero a un entero largo con o sin signo.

yo

Mamtches un entero con o sin signo. El argumento correspondiente


ser un puntero a un entero con o sin signo.

Li

Mamtches un entero largo con o sin signo. El argumento


correspondiente ser un puntero a un entero largo con o sin
signo.

f, g o correo

264

Mamtches un nmero de coma flotante en formato decimal o


exponencial. El argumento correspondiente ser un puntero a un
flotador.

Mamtches una secuencia no vaca de caracteres de un conjunto de


caracteres esperados. La secuencia de caracteres incluidos en el
conjunto se compone de todo carcter que sigue al corchete
izquierdo ([) hasta la coincidencia
corchete de cierre (]). A menos que el primer carcter despus del
parntesis de la izquierda es una ^,
yon cuyo caso el conjunto de caracteres contiene todos los
caracteres que no aparecen entre los corchetes. Si una -Character
est en el conjunto, y no es la primera o la segunda, donde el
primero es una ^, Ni el ltimo carcter, entonces el conjunto incluye
todos los caracteres desde el personaje antes de la -al carcter
despus de la -.
Por ejemplo,% [az] incluira todos los caracteres de untozyon el
conjunto y el% [^ a-z] excluira todos los caracteres de una zDel
conjunto.
The argumento correspondiente ser un puntero al carcter inicial de
una matriz el tiempo suficiente para aceptar la secuencia de
terminacin y una
null carcter, que se aadir automticamente.

norte

Asignars el nmero de caracteres ledos hasta el momento por la

Funciones
integradas El argumento
llamada a scanf () con el argumento correspondiente.
correspondiente ser un puntero a un entero sin signo.

265

CCS C 10082015

UNn carcter asignacin de supresin opcional (*) Se puede utilizar


despus de la especificador de formato para indicar que la
especificacin de conversin que se debe hacer, pero no se guarda
en una variable correspondiente. En este caso, no hay ninguna
variable argumento correspondiente se debe pasar a la funcin
scanf ().
Una cadena compuesta de caracteres ordinarios espaciales no blanco
es ejecutado por la lectura de la siguiente carcter de la cadena. Si
uno de los caracteres introducidos se diferencia de la cadena, la
funcin falla y salidas. Si un carcter de espacio en blanco precede
a los caracteres ordinarios espaciales no-blancos, a continuacin,
los caracteres de espacio en blanco se leen en la primera hasta
que se lea un carcter de espacio no es el edificio.
Blanco-Espacio caracteres se omiten, a excepcin de los indicadores
de conversin [,doornorte, A menos que un carcter de espacio en
blanco precede a la [ordoespecFiers.
Disponibilidad:
Se requiere:
Ejemplos:

Todos los dispositivos


#RS232 USO
char nombre [2-]; INT8
nmero sin signo;
firmado int32 tiempo;
si (scanf ( "% u% s% ld", y nmero, nombre y hora))
printf "\ r \ nNombre:% s, Nmero:% u, Tiempo:% ld", nombre, nmero,
tiempo);

Archivos de ejemplo:
UNlso Ver:

Ninguna
RS232 E / S Descripcin general,getc (), Putc (), printf ()

set_cog_blanking ()
Syntax: set_cog_blanking (falling_time, rising_time); Parmetros:
tiempo de cada - Establece el flanco de bajada tiempo de borrado.
tiempo de ascenso - Fijar el aumento de tiempo de supresin del borde.
Devoluciones:
Funcin:

266

Nada
To ajustar los tiempos de supresin flanco de bajada y la subida de la complementaria
UNEDtput Generador (COG) del mdulo. El tiempo se basa en el reloj fuente del
mdulo COG, los tiempos son o una 4-bit o valor de 6 bits, dependiendo del
dispositivo, consulte la hoja del dispositivo para obtener la anchura correcta.

Funciones
integradas
Disponibilidad:
Ejemplos:

Todos los dispositivos con un mdulo COG.


set_cog_blanking (10,10);

Archivos de ejemplo:
UNlso Ver:

Ninguna
SEtup_cog (),SEt_cog_phase (),SEt_cog_dead_band (),cog_staTUS (),diente_reiniciar()

set_cog_dead_band ()
Syntax: set_cog_dead_band (falling_time, rising_time);
Parmetros: tiempo de cada - Establece el tiempo de banda muerta flanco descendente.
tiempo de ascenso - Establece el tiempo de banda muerta flanco ascendente.
Devoluciones:
Funcin:
complementaria

Nada
To ajustar los tiempos de cada y el levantamiento de borde de banda muerta en la
UNEDtput Generador (COG) del mdulo. El tiempo se basa en el reloj fuente del
mdulo COG, los tiempos son o una 4-bit o valor de 6 bits, dependiendo del
dispositivo, consulte la hoja del dispositivo para obtener la anchura correcta.

Disponibilidad:
Ejemplos:

Todos los dispositivos con un mdulo COG.


set_cog_dead_band (16,32);

Archivos de ejemplo:
UNlso Ver:

Ninguna
SEtup_cog (),SEt_cog_phase (),SEt_cog_blanking (),cog_status (),cog_restarta()

set_cog_phase ()
Syntax: set_cog_phase (rising_time);
SEt_cog_phase (falling_time, rising_time);

Parmetros: tiempo de cada - Fijar el tiempo de la fase flanco de bajada.


tiempo de ascenso - Fijar el tiempo de la fase flanco ascendente.
Devoluciones:
Funcin:

Nada
To ajustar los tiempos de fase flanco de bajada y la subida de la complementaria
267

CCS C 10082015

UNEDtput Generador (COG) del mdulo. El tiempo se basa en el reloj fuente del COG
mdulo, Los tiempos son o bien un valor de 4 bits o 6 bits, dependiendo del
dispositivo. Algunos dispositivos slo tienen un retraso flanco ascendente,
consulte la hoja de datos del dispositivo.
Disponibilidad:
Ejemplos:
Archivos de ejemplo:
UNlso Ver:

Todos los dispositivos con un mdulo COG.


set_cog_phase (10,10);

Ninguna
SEtup_cog (),SEt_cog_dead_band (),SEt_cog_blanking (),cog_status (),diente_reiniciar()

set_compare_time ()
Syntax: set_compare_time (incgnita, odor, [OCR]])
parmetros:

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

incgnitayos 1-16 y define qu salida comparan mdulo para establecer el tiempo de


LOC yoes el momento de comparar para comparar la primaria registrarse.
OCRs yoEs por el facultativo comparar el tiempo para el registro secundario. Se
utiliza para comparar el modo dual.
Ninguna
This funcin establece el valor de comparacin para la comparacin de salida del
mdulo. Si la salida de comparar mdulo es para llevar a cabo slo una nica
comparar que la OCRs registro no se utiliza. Si la comparacin de salida del mdulo
est utilizando doble Comparar para generar un impulso de salida,
el LOC signifis del inicio del pulso y jefers Delawaremultas el tiempo de terminacin
del pulso.
ONLy est disponible en dispositivos con salida de comparar los mdulos.
Nada
// Pin OC1 se establece cuando el temporizador 2 es
igual a 0xF000 setup_timer2 (TMR_INTERNAL |
TIMER_DIV_BY_8); setup_compare_time (1, 0xF000);
setup_compare (1, COMPARE_SET_ON_MATCH | COMPARE_TIMER2);

Archivos de ejemplo:
UNlso Ver:

268

Ninguna
get_capture (), setup_compare (), comparacin de salida, PWM general

Funciones
integradas

set_dedicated_adc_channel ( )
Syntax: set_dedicated_adc_channel (core, el canal, [diferencial]);
Parmetros: ncleo - El ncleo ADC dedicado para configurar
dohannel - El canal asignado al ncleo ADC especificado. Los canales se definen en el
archivo .h del dispositivo como sigue:

ADC_CHANNEL_AN0
ADC_CHANNEL_AN7
ADC_CHANNEL_PGA1
ADC_CHANNEL_AN0ALT
ADC_CHANNEL_AN1
ADC_CHANNEL_AN18
ADC_CHANNEL_PGA2
ADC_CHANNEL_AN1ALT
ADC_CHANNEL_AN2
ADC_CHANNEL_AN11
ADC_CHANNEL_VREF_BAND_GAP
ADC_CHANNEL_AN3
ADC_CHANNEL_AN15

No todos los define anteriormente se pueden usar con todos los ncleos de ADC
dedicados. Se refiere a la cabecera del dispositivo para el que se puede utilizar con
cada ncleo ADC dedicado.
diferencial - Parmetro opcional para especificar si el canal es diferencial o de
composicin nica. VERDADERO FALSO es diferencial y es de una sola terminal.
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:
Archivos de ejemplo:
UNlso Ver:

Indefinido
Establece el canal que ser asignado al ncleo ADC dedicado especificado.
Funcin no establece el canal que ser ledo con la siguiente llamada a read_adc (), el
uso set_adc_channel () o read_adc () para ajustar el canal que ser ledo.
On dsPIC33EPxxGSxxx la familia de dispositivos.
Nada.
SEtup_dedicated_adc_channel (0, ADC_CHANNEL_AN0);
Ninguna
SEtup_adc (),SEtup_adc_ports (),set_adc_channel(), read_adc (), adc_done
(),SEtup_dedicated_adc (),ADC general

269

CCS C 10082015

set_hspwm_duty ()
Syntax: setup_hspwm_duty (duty);
SEt_hspwm_duty (unit, primaria, [secundaria]);
Parmetros: deber - Un 16 bits constante o variable para ajustar el ciclo de trabajo del maestro
unidad - La unidad de alta velocidad PWM para ajustar.
primario - Un 16 bits constante o variable para ajustar el ciclo de trabajo primaria.
segundosecun- - Un opcional de 16 bits constante o variable para ajustar el ciclo
de trabajo secundaria. ciclo de trabajo secundaria se utiliza nicamente en el modo
PWM independiente. No disponible en todos los dispositivos, consulte la hoja de
datos del dispositivo disponibilidad.
Devoluciones:
Funcin:
Disponibilidad:
velocidad

undefinere
Se instala la unidad PWM de alta velocidad especificada.
ONLy en los dispositivos con un sistema incorporado en el mdulo de PWM de alta
(DsPIC33FJxxGSxxx, dsPIC33EPxxxMUxxx, dispositivos
dsPIC33EPxxxMCxxx, y dsPIC33EVxxxGMxxx)

Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

Las constantes se definen en el archivo .h del dispositivo


set_hspwm_duty (0x7FFF); // Establece el maestro set_hspwm_duty ciclo de
trabajo PWM de alta velocidad (1, 0x3FFF); // Ciclo de trabajo primaria
conjuntos de unidad 1

Ninguna
SEtup_hspwm_unit (),SEt_hspwm_phase (), SEt_hspwm_event
(),SEtup_hspwm_blanking (),setup_hspwm_desencadenar(),SEt_hspwm_override
(),get_hspwm_capture (),SEtup_hspwm_chop_clock (),
setup_hspwm_unit_chop_clock () setup_hspwm (),SEtup_hspwm_secondary ()

set_hspwm_event ()

set_hspwm_event_secondary ()

Syntax: set_hspwm_event (SEAjus tes, compare_time);


SEt_shwpm_event_secondary (SEAjus tes, compare_time); //si est disponible
Parmetros: los ajustes - Temporizador de eventos especiales Ajuste es OR con un valor de 1 a 16 para
establecer el pre-escalador.
The siguientes son los ajustes disponibles para la hora del evento especial:
HSPWM_SPECIAL_EVENT_INT_ENABLED
HSPWM_SPECIAL_EVENT_INT_DISABLED
270

Funciones
integradas
doompare_time - Comparar el tiempo para el evento especial que se produzca.
Devoluciones:
Funcin:
Disponibilidad:

Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

undefinere
Se instala la unidad PWM de alta velocidad especificada.
ONLy en dispositivos con un mdulo PWM incorporada de alta
velocidad (dsPIC33FJxxGSxxx, dsPIC33EPxxxMUxxx, dispositivos
dsPIC33EPxxxMCxxx, y dsPIC33EVxxxGMxxx)
Las constantes se definen en el archivo .h del dispositivo
set_hspwm_event (HSPWM_SPECIAL_EVENT_INT_ENABLED, 0x1000);

Ninguna
SEtup_hspwm_unit (),SEt_hspwm_phase (), SEt_hspwm_duty
(),SEtup_hspwm_blanking (),setup_hspwm_desencadenar(),SEt_hspwm_override
(),get_hspwm_capture (),SEtup_hspwm_chop_clock (),
setup_hspwm_unit_chop_clock ()
SEtup_hspwm (),SEtup_hspwm_secondary ()

set_hspwm_override ()
Syntax: set_hspwm_override (unit, entorno);
Parmetros: unidad - La unidad de alta velocidad PWM para anular.
SEAjus tes - Los configuracin de reemplazo para su uso. Las opciones vlidas varan
dependiendo del dispositivo. Ver archivo .h del dispositivo para todas las opciones.
Algunas opciones tpicas incluyen:
HSPWM_FORCE_H_1
HSPWM_FORCE_H_0
HSPWM_FORCE_L_1
HSPWM_FORCE_L_0
Devoluciones:
Funcin:
Disponibilidad:
velocidad

Indefinido
Configuracin y PWM de alta velocidad uoverride configuracin.
ONLy en los dispositivos con un sistema incorporado en el mdulo de PWM de alta
(DsPIC33FJxxGSxxx, dsPIC33EPxxxMUxxx, dispositivos
dsPIC33EPxxxMCxxx, y dsPIC33EVxxxGMxxx)

Se requiere:

Ninguna

271

CCS C 10082015
Ejemplos:

272

setup_hspwm_override (1, HSPWM_FORCE_H_1 | HSPWM_FORCE_L_0);

Funciones
integradas

Archivos de ejemplo:
UNlso Ver:

Ninguna
SEtup_hspwm_unit (),SEt_hspwm_phase (), SEt_hspwm_duty (),set_hspwm_event
(),SEtup_hspwm_blanking (),setup_hspwm_desencadenar(),get_hspwm_capture (),
SEtup_hspwm_chop_clock (), setup_hspwm_unit_chop_clock ()
SEtup_hspwm (),SEtup_hspwm_secondary ()

set_hspwm_phase ()
Syntax: set_hspwm_phase (unit, primaria, [secundaria]);
Parmetros: unidad - La unidad de alta velocidad PWM para ajustar.
primario - Un 16 bits constante o variable para ajustar el ciclo de trabajo primaria.
segundosecun- - Un opcional de 16 bits constante o variable para ajustar el ciclo
de trabajo secundaria. ciclo de trabajo secundaria se utiliza nicamente en el modo
PWM independiente. No disponible en todos los dispositivos, consulte la hoja de
datos del dispositivo disponibilidad.
Devoluciones:
Funcin:
Disponibilidad:
velocidad

undefinere
Se instala la unidad PWM de alta velocidad especificada.
ONLy en los dispositivos con un sistema incorporado en el mdulo de PWM de alta
(DsPIC33FJxxGSxxx, dsPIC33EPxxxMUxxx, dispositivos
dsPIC33EPxxxMCxxx, y dsPIC33EVxxxGMxxx)

Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

Las constantes se definen en el archivo .h del dispositivo


set_hspwm (1,0x1000,0x8000);

Ninguna
SEtup_hspwm_unit (),SEt_hspwm_duty (),SEt_hspwm_event
(),SEtup_hspwm_blanking (),setup_hspwm_desencadenar(),SEt_hspwm_override
(),get_hspwm_capture (),SEtup_hspwm_chop_clock (),
setup_hspwm_unit_chop_clock () setup_hspwm (),SEtup_hspwm_secondary ()

273

CCS C 10082015

set_nco_inc_value ()
Syntax: set_nco_inc_value(valor);
tros
Parame
:

VirginiaLue- Valor a configurar los registros de


incremento NCO

Devoluc
iones
:

Indefinido

Functio
n:

Establece el valor de que el acumulador del NCO se incrementar en la disponibilidad


para cada pulso de reloj. Los registros se almacenan de incremento doble, as que el
nuevo valor no se aplicar hasta que los rodillos-ms de acumuladores.

dad
availabi:

On dispositivos con un mdulo de NCO.

Exampl
es:

set_nco_inc_value (inc_value); // Establece el nuevo valor de incremento

Exampl
correo
Archivo
s:

Ninguna
SEtup_nco (),get_nco_accumulator (),get_nco_inc_value ()

UNlso
Ver:

set_open_drain ()
Syntax: set_open_drain_a (valor)
set_open_drain_b (valor)
set_open_drain_c (valor)
set_open_drain_d (valor)
set_open_drain_e (valor)
set_open_drain_f (valor)
set_open_drain_g (valor)
set_open_drain_h (valor)
set_open_drain_j (valor)
set_open_drain_k (valor)
Parmetros: Value - es un mapa de bits correspondiente a los pines del puerto. El establecimiento de un
bit hace que el pasador correspondiente a actuar como una salida de drenaje
abierto.
Devoluciones:
Funcin

Disponibilidad

Nada
Activa / desactiva la capacidad de salida de drenaje abierto sobre los pines del puerto. No
todos los puertos o los pines del puerto tienen capacidad de drenaje abierto, se refieren
a dispositivos hoja de datos para el puerto y la disponibilidad pasador.
On del dispositivo que tiene la capacidad de drenaje abierto.

SEt_open_drain_b (0x0001); // Activa la salida de drenaje abierto en


PIN_B0, desactiva en todos los otros // pines del puerto B.
Ninguna.
Archivos de ejemplo:
Ejemplos:

274

Funciones
integradas

set_power_pwm_override ( )
Syntax: set_power_pwm_override (pwm,override,valor)
parmetros:

Devoluciones:
Funcin:

PWM yoes una constante entre 0 y 7


override yos verdadero o falso
Valor yos 0 o 1
undefinere
PWM seleccionars que se ver afectado mdulo.
override DelawareTermines si la salida ha de ser determinado por las OVDCONS
registro o los registros de PDC. Cuando la redefinicin es falsa, los registros de PDC
determinan la salida. Cuando la redefinicin es cierto, la salida est determinada por el
valor almacenado en OVDCONS.
VirginiaLue DelawareTermines si el pin es conducido a que es staet activo o si el pin
estar inactivo. Me ser conducido a su estado activo, 0 pasador estar inactivo.

Disponibilidad:
Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

Todos los dispositivos equipados con PWM.


Ninguna
set_power_pwm_override (1, verdadera, 1); // PWM1 ser
// Reemplaza al activo
//
Set_power_pwm_override estado (1, falsa, 0); // PMW1 no
ser
// alterada temporalmente

Ninguna
SEtup_power_pwm (),SEtup_power_pwm_pins (),set_power_pwmX_duty ()

set_power_pwmx_duty ()
Syntax: set_power_pwmincgnita_deber(duty)
parmetros:

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:

incgnitayos 0, 2, 4, o 6
Deber yos un nmero entero entre 0 y 16383.
undefinere
Almacena el valor del deber en el registro PDCXL / H apropiada. Este valor deber es
la cantidad de tiempo que la salida PWM est en el estado activo.
Todos los dispositivos equipados con PWM.
Ninguna
275

CCS C 10082015

Ejemplos:

set_power_pwmx_duty (4000);

Archivos de ejemplo:
UNlso Ver:

Ninguna
SEtup_power_pwm (),SEtup_power_pwm_pins
(),SEt_power_pwm_override ()

set_pulldown ()
Syntax: set_Pulldown (estado [, pin])
Parmetros: Contactos unre definido en los dispositivos .h archivo. Si no se proporciona ningn alfiler en la
llamada de funcin, entonces todos los pines correspondientes al pasado en el estado.
Estado yos, ya sea verdadera o falsa.
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

undefinere
Establece el estado de la traccin del pasador a la aprobada en el valor de estado. Si
no hay ningn pasador est incluido en la llamada de funcin, a continuacin, todos
los pines vlidos se establecen en el pasado en el estado.
Todos los dispositivos de hardware que tienen desplegable.
Pin constantes se definen en los dispositivos .h archivo.
set_pulldown (verdadero, PIN_B0);
// Establece el estado de la traccin pasador de B0 a cierto
set_pullup (false);
// Establece el estado de la traccin de todos los pines en false

Archivos de ejemplo:
UNlso Ver:

Ninguna
Ninguna

set_pullup ()
Syntax:

SEt_Pullup (estado, [PIN])

parmetros:

Los clavos se definen en el archivo de los dispositivos .h. Si no se proporciona ningn


alfiler en la llamada de funcin, entonces todos los pines correspondientes al pasado
en el estado.

276

Funciones
integradas

Estado yos, ya sea verdadera o falsa.


Los clavos se definen en el archivo de los dispositivos .h. El nmero real es una
direccin de bit. Por ejemplo, el puerto de un (byte 5) bit 3 tendra un valor de 5 * 8 + 3
o 43. Esto se define como
de la siguiente manera: #DEFINE PIN_A3 43. El pasador tambin podra ser una
variable que tiene un valor igual a una de las constantes de pasador predefinidos. Nota
Si no se proporciona ningn alfiler en la llamada de funcin, entonces todos los pines
correspondientes al pasado en el estado.
Estado yos, ya sea verdadera o falsa.
Devoluciones:

undefinere

Funcin:

Establece el estado tire hacia arriba de la espiga a la aprobada en el valor de


estado. Si no hay ningn pasador est incluido en la llamada de funcin, a
continuacin, todos los pines vlidos se establecen en el pasado en el estado.

Disponibilidad:

Todos los dispositivos.

Se requiere:

Pin constantes se definen en los dispositivos .h archivo.

Ejemplos:

set_pullup (verdadero, PIN_B0);


// Establece el estado pull up pasador de B0 a cierto
set_pullup (false);
// Establece el estado despierto toda la traccin del pasador en false

Archivos de ejemplo:
UNlso Ver:

Ninguna
Ninguna

set_pwm1_duty ()
set_pwm3_duty ()
set_pwm5_duty ()
Syntax:

parmetros:
Devoluciones:
Funcin:

set_pwm2_duty
set_pwm4_duty

()
()

set_pwm1_duty
(valor)
Set_pwm2_duty (valor)
Set_pwm3_duty (valor)
Set_pwm4_duty (valor)
Set_pwm5_duty (valor)
VirginiaLue mamy ser un 8 o 16 bits constante o variable.
undefinere
WRItes el valor de 10 bits a la PWM para configurar el servicio. Un valor de 8 bits se
puede utilizar si no se requieren los bits ms significativos. se utiliza entonces el valor de
10 bits para determinar el ciclo de trabajo de la seal PWM de la siguiente manera:
277

CCS C 10082015

duciclo ty = valor / [4 * (PR2 +1)]

Si se utiliza un valor de 8 bits, el ciclo de trabajo de la seal PWM se determina como


sigue:
duciclo ty = valor / (PR2 + 1)
where PR2 es el valor mximo del temporizador 2 contar con antes de alternar el pin de
salida.
Disponibilidad:

This funcin slo est disponible en dispositivos con hardware / PWM CCP.

Se requiere:

Ninguna
// Para un reloj de 20 MHz, frecuencia de
1,2 kHz,
// T2DIV ajustado a 16, PR2 establece en 200
// Los siguientes establece un derecho a un 50% (o

Ejemplos:

por 416). deber de largo;


deber = 408; // [408 / (4 * (200 + 1))] = 0,5 = 50%
set_pwm1_duty (deber);

Archivos de ejemplo:
UNlso Ver:

ex_pwm.do
SEtup_ccpX (), Set_ccpX_compare_time (), set_timer_period_ccpX (),
set_timer_ccpX (), get_timer_ccpX (), get_capture_ccpX (), get_captures32_ccpX ()

set_pwm1_offset () set_pwm2_offset ()
set_pwm3_offset () set_pwm4_offset ()
set_pwm5_offset () set_pwm6_offset ()
Syntax:

parmetros:
Devoluciones:
Funcin:

Disponibilidad:

278

set_pwm1_offset
(valor)
Set_pwm2_offset (valor)
Set_pwm3_offset (valor)
Set_pwm4_offset (valor)
Set_pwm5_offset (valor)
Set_pwm6_offset (valor)
VirginiaLue - 16 bits constante o variable.
indefinido.
WRItes el 16 bits a la PWM para ajustar el offset. El desplazamiento se utiliza para
ajustar la forma de onda de un mdulo slae PWM en relacin con la forma de onda de
un mdulo de PWM maestro.
Los dispositivos con un mdulo de PWM de 16 bits.

Se requiere:

Nada

Funciones
integradas

279

CCS C 10082015

Ejemplos:

set_pwm1_offset (0x0100);
set_pwm1_offset (offset);

Archivos de ejemplo:
UNlso Ver:

SEtup_pwm (),SEt_pwm_duty (), set_pwm_period


(),CLEAr_pwm_interrupt (),SEt_pwm_phase (),enable_pwm_interrumpir (),
disable_pwm_interrupt (),pwm_interrupt_active ()

set_pwm1_period () set_pwm2_period ()
set_pwm3_period () set_pwm4_period ()
set_pwm5_period () set_pwm6_period ()
Syntax:

set_pwm1_period
(valor)
Set_pwm2_period (valor)
Set_pwm3_period (valor)
Set_pwm4_period (valor)
Set_pwm5_period (valor)
Set_pwm6_period (valor)

parmetros:
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

VirginiaLue - 16 bits constante o variable.


indefinido.
WRItes el 16 bits a la PWM para ajustar el perodo. Cuando el mdulo PWM es puesta a
punto para el modo estndar que establece el perodo de la seal PWM. Cuando puesta
a punto para set en el modo de juego, se establece el valor mximo al que puede ocurrir
el partido de fase. Cuando en el partido de palanca y modos centrales alineados
establece el valor mximo de la PWMxTMR contar con, el perodo real de la seal PWM
ser el doble de lo que el perodo se establece en.
Los dispositivos con un mdulo de PWM de 16 bits.
Nada
set_pwm1_period (0x8000);
set_pwm1_period (perodo);

Archivos de ejemplo:
UNlso Ver:

280

SEtup_pwm (), SEt_pwm_duty (), set_pwm_phase(), CLEAr_pwm_interrupt


(),SEt_pwm_offset (),enable_pwm_interrumpir (),disable_pwm_interrumpir
(),pwm_interrupt_active ()

Funciones
integradas

set_pwm1_phase () set_pwm2_phase ()
set_pwm3_phase () set_pwm4_phase ()
set_pwm5_phase () set_pwm6_phase ()
Syntax:

set_pwm1_phase
(valor)
Set_pwm2_phase (valor)
Set_pwm3_phase (valor)
Set_pwm4_phase (valor)
Set_pwm5_phase (valor)
Set_pwm6_phase (valor)

parmetros:
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

VirginiaLue - 16 bits constante o variable.


indefinido.
WRItes el 16 bits a la PWM para ajustar la fase. Cuando el mdulo PWM es puesta a
punto para el modo estndar de la phaes especifica el inicio del ciclo de trabajo, cuando
est en juego en el modo de emparejamiento se especifica cuando la salida pasa a nivel
alto, y cuando est en el modo de palanca en partido que especifica cuando el alterna de
salida. Fase no se utiliza cuando en el centro de modo alineado.
Los dispositivos con un mdulo de PWM de 16 bits.
Nada
set_pwm1_phase (0);
set_pwm1_phase (fase);

Archivos de ejemplo:
UNlso Ver:

SEtup_pwm (),SEt_pwm_duty (), set_pwm_period (),


CLEAr_pwm_interrupt (),SEt_pwm_offset (),enable_pwm_interrupt (),
disable_pwm_interrumpir (),
pwm_interrupt_active ()

set_open_drain_x ()
Syntax: set_open_drain_a (valor)
Set_open_drain_b (valor)
Set_open_drain_v (valor)
Set_open_drain_d (valor)
Set_open_drain_e (valor)
Set_open_drain_f (valor)
Set_open_drain_g (valor)
Set_open_drain_h (valor)
Set_open_drain_j (valor)
Set_open_drain_k (valor)
Parmetros: valor yos un entero de 16 bits con cada bit que representa un poco del puerto de E / S.
Devoluciones:

undefinere

Funcin:
Tesfunciones electrnicas permiten que el puerto E / S Control de Open-Drain I (ODC)
registra a establecer. cada bit
281

CCS C 10082015

yon representa el valor de un pin. A 1 establece el pin correspondiente para actuar


como una salida de drenaje abierto, y unos 0 establece el pin correspondiente para
actuar como una salida digital.
Disponibilidad:

Todos los equipos con registros de ODC, sin embargo, no todos los dispositivos
tienen todos los puertos I / O y no todos los dispositivos de puerto de tener un
registro ODC correspondiente.

Se requiere:

Nada
set_open_drain_a (0x0001); // Hace PIN_A0 una salida de drenaje abierto

Ejemplos:
Archivos de ejemplo:
UNlso Ver:

Ninguna
UNEDtput_high (),UNEDtput_low (),UNEDtput_bit (),UNEDtput_x (),GenePropsito ral de E / S

set_rtcc ()
set_timer0 ()
set_timer2 () set_timer3 ()

set_timer1 ()
set_timer4 () set_timer5 ()

Syntax: set_timer0 (valor) o set_rtcc (valor)


SEt_timer1
(valor) set_timer2
(valor) set_timer3
(valor)
SEt_timer4
(valor)
SEt_timer5
(valor)
parmetros:

Devoluciones:
Funcin:

Disponibilidad:

Se requiere:
Ejemplos:
282

Horars 1 y 5 reciben un int de 16 bits.


HoraR 2 y 4 consigue un entero de 8 bits.
Horar 0 (Tambin conocido como RTCC) obtiene un entero de 8 bits, excepto en el
PIC18XXX donde se necesita un int de 16 bits. Temporizador 3 es de 8 bits de PIC16 y
16 bits de PIC18
undefinere
Establece el valor de recuento de un reloj de tiempo real / contador. RTCC y Timer0
son los mismos. Todos los temporizadores cuentan hacia arriba. Cuando un
temporizador alcanza el valor mximo se le dar la vuelta a 0 y continuar recuento
(254, 255, 0, 1, 2 ...)
Horar 0 - Todos los dispositivos
Horars 1 y 2 - La mayora pero no todos los
dispositivos PCM Timer 3 - Slo PIC18XXX y
algunos dispositivos de recogida de
temporizador 4 - Algunos dispositivos PCH
Horar 5 - Slo PIC18XX31
Nada
// 20 MHz del reloj, sin pre-escalador,
establecer un temporizador 0

// A desbordarse en 35US

Funciones
integradas

set_timer0 (81); // 256 - (. 000035 / (4/20000000))

Archivos de ejemplo:

ex_patg.c

283

CCS C 10082015

UNlso Ver:

SEt_timer1 (),get_timerX () Horar0 general,Horar1Overview,Horar2 general,HoraR5


overview

set_ticks ()
Syntax: set_ticks ([sTREAM],valor);
Parmetros: Secuencia - Parmetro opcional que especifica la corriente se define en #Utilice TIMER
VirginiaLue - Un nmero entero de bits 8, 16 o 32, que indica el nuevo valor del
temporizador de garrapata. (INT8, Int16 o Int32)
Devoluciones:

voire

Funcin:
Establece el nuevo valor del contador de tiempo de la garrapata. Tamao pasado
depende del tamao del temporizador de garrapata.
Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#Utilice el temporizador (opciones)


#Utilice TIMER (TEMPORIZADOR = 1, TICK = 1ms, BITS = 16, NOISR)
void main (void) {
Int16 valor sin signo = 0x1000;
set_ticks (valor);
}

Archivos de ejemplo:
UNlso Ver:

Ninguna
#Utilizar Contador,get_ticks ()

setup_sd_adc_calibration ( )
Syntax: setup_sd_adc_calibration (modelo);
parmetros:
el mdulo ADC SD.

metrooda- Permite seleccionar si desea activar o desactivar el modo de calibracin para


The siguientes define se hacen en el dispositivo de .marido archivo:
1 SDADC_START_CALIBRATION_MODE
2 SDADC_END_CALIBRATION_MODE

Devoluciones:
Funcin:

284

Nada
To activar o desactivar el modo de calibracin en el Sigma-Delta convertidor
analgico a digital (ADC SD) del mdulo. Esto se puede utilizar para
determinar el error de desplazamiento del mdulo, que puede ser restada
de lecturas futuras.

Funciones
integradas
Disponibilidad:
Ejemplos:

ONLdispositivos de Y con un mdulo ADC SD.


signed int 32 resultado, la calibracin;
SEt_sd_adc_calibration
(SDADC_START_CALIBRATION_MODE); calibracin =
read_sd_adc (); set_sd_adc_calibration
(SDADC_END_CALIBRATION_MODE);
resultado = read_sd_adc () - calibracin;

Archivos de ejemplo:

Ninguna

UNlso Ver:

SEtup_sd_adc (),read_sd_adc(), set_sd_adc_channe(l )

set_sd_adc_channel ()
Syntax: setup_sd_adc (canal);
parmetros:

dohannel- Fijar el canal ADC SD para leer. Canal puede ser 0 para leer la diferencia
entre CH0 + y CH0-, 1 para leer la diferencia entre CH1 + y CH1, o uno de los siguientes:
1 SDADC_CH1SE_SVSS
2 SDADC_REFERENCE

Devoluciones:
Funcin:

Nada
To seleccionar el canal que el Sigma-Delta Convertidor Analgico a Digital (SD ADC)
Educacin fsicarforms la conversin sucesivamente.

Disponibilidad:
Ejemplos:

ONLdispositivos de Y con un mdulo ADC SD.


SEt_sd_adc_channel (0);

Archivos de ejemplo:
UNlso Ver:

Ninguna
SEtup_sd_adc (),read_sd_adc(),set_sd_adc_calibracionar()

set_timerA ()
Syntax: set_timerA (valor);
parmetros:

Un entero de 8 bits. Especificacin del nuevo valor del temporizador. (INT8)

285

CCS C 10082015

Devoluciones:

undefinere

Funcin:
Establece el valor actual del temporizador. Todos los temporizadores cuentan hacia arriba.
Cuando un temporizador alcanza el
maximum valor que le dar la vuelta a 0 y continuar recuento (254, 255, 0, 1, 2, ...).
Disponibilidad:

This funcin slo est disponible en dispositivos con temporizador Un hardware.

Se requiere:
Ejemplos:

Nada
// 20 MHz del reloj, sin pre-escalador,
establecer un temporizador Un
// A desbordarse en 35US
set_timerA (81); // 256 - (. 000035 / (4/20000000))

Archivos de ejemplo:

ninguna

UNlso Ver:

get_timerA (),SEtup_timer_A (),HorarA general

set_timerB ()
Syntax: set_timerB (valor);
parmetros:
Devoluciones:

Un entero de 8 bits. Especificacin del nuevo valor del temporizador. (INT8)


undefinere

Funcin:
Establece el valor actual del temporizador. Todos los temporizadores cuentan hacia arriba.
Cuando un temporizador alcanza el
maximum valor que le dar la vuelta a 0 y continuar recuento (254, 255, 0, 1, 2, ...).
Disponibilidad:
Se requiere:
Ejemplos:

This funcin slo est disponible en dispositivos con hardware de temporizador B.


Nada
// 20 MHz del reloj, sin pre-escalador,
establece temporizador B
// A desbordarse en 35US
set_timerB (81); // 256 - (. 000035 / (4/20000000))

Archivos de ejemplo:
UNlso Ver:

286

ninguna
get_timerB (),SEtup_timer_B (),HorarB general

Funciones
integradas

set_timerx ()
Syntax: set_timerX (valor)
tros
Parame
:
Devoluc
iones
:

UN16 bit nmero entero, especificando el nuevo valor del temporizador. (Int16)
voire
Permite al usuario para establecer el valor del temporizador.

Functio
n:

This funcin est disponible en todos los dispositivos que

dad
availabi:

tienen un TIMERx vlida. Nada

Requeri
r s:

si (EventOccured ())
set_timer2 (0); // restablecer el temporizador.

Exampl
es:
Exampl
correo
Archivo
s:

Nonortemi
Horar Informacin general,SEt_timerX ()

UNlso
Ver:

set_tris_x ()
Syntax: set_tris_a (valor) Set_tris_b
(valor) Set_tris_c
(valor) Set_tris_d
(valor) Set_tris_e
(valor) Set_tris_f
(valor) Set_tris_g
(valor) Set_tris_h
(valor) Set_tris_j
(valor) Set_tris_k
(valor)
parmetros:
S.
Devoluciones:
Funcin:

VirginiaLue yos un entero de 8 bits con cada bit que representa un poco del puerto de E /

undefinere
Tesfunciones electrnicas permiten que la E / S puerto de direccin I (Tri-State) registra a
establecer. Esto se debe utilizar con FAST_IO y cuando se accede a puertos I / O como
de memoria, tal como cuando se utiliza una directiva # BYTE acceder a un puerto I / O.
Utilizando el estndar por defecto de E / S el construido en funciones de establecer la
direccin de E / S de forma automtica.
Cada bit en el valor representa un pin. Un 1 indica que el pasador es de entrada y un 0
indica que est de salida.
287

CCS C 10082015

Disponibilidad:
/ O)

288

Todos los dispositivos (sin embargo no todos los dispositivos tienen todos los puertos I

Funciones
integradas
Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

Nada
SET_TRIS_B (0x0F);
// B7, B6, B5, B4 son salidas
// B3, B2, B1, B0 son entradas

lcd.do
#USO FAST_IO,#USO FIXED_IO,#USO STANDARD_IO,GenePropsito ral de E / S

set_uart_speed ()
Syntax: set_uart_speed (baudios, [sTREAM, reloj])
parmetros:

Devoluciones:
Funcin:
tiempo de ejecucin.
Disponibilidad:
UART.
Se requiere:
Ejemplos:

baudios yos una constante que representa el nmero de bits


por segundo.
sTREAM yos un identificador de flujo opcional.
dobloquear yos un parmetro opcional para indicar lo que el reloj actual es si es diferente
de la
#nosvalor de retardo de correo
undefinere
Cambia la velocidad de transmisin del puerto serie RS232 incorporado en el hardware en

This funcin slo est disponible en dispositivos con un sistema incorporado en la

#RS232 USO
// Establecer la velocidad de transmisin basado en el establecimiento
// De pasadores de B0 y B1
interruptor (input_b () y 3) {
caso 0: set_uart_speed (2400); romper;
Caso 1: set_uart_speed (4800); romper;
Caso 2: set_uart_speed (9600); romper;
Caso 3: set_uart_speed (19200); romper;
}

Archivos de ejemplo:
UNlso Ver:

cargador.do
#RS232 USO, Putc (), getc (),SEUART TUP (),RS232 E / S Descripcin general,

289

CCS C 10082015

setjmp ()
Syntax: resultado = setjmp (env)
parmetros:

miNevada: El objeto de datos que recibir el entorno actual

Devoluciones:

Si la devolucin es de una invocacin directa, esta funcin devuelve 0.


Si la devolucin es de una llamada a la funcin longjmp, la funcin setjmp devuelve un
valor distinto de cero y es el mismo valor que se pasa a la funcin longjmp.

Funcin:

Disponibilidad:
Se requiere:
Ejemplos:
Archivos de ejemplo:
UNlso Ver:

Almacena informacin sobre el contexto de llamada actual en un objeto de datos de


tipo jmp_buf y que marca donde se desea tener un control de transmitir una llamada
longjmp correspondiente.
Todos los dispositivos
#ENCLUDE <setjmp.h>
resultado = setjmp (jmpbuf);

Ninguna
longjmp()

setup_adc (modo)
Syntax: setup_adc (modo);
SEtup_adc2 (modo);
parmetros:
metrooda- Analog to modo digital. Las opciones vlidas varan dependiendo del
dispositivo. Ver archivo de los dispositivos .h para todas las opciones. Algunas
opciones tpicas incluyen:
ADC_OFF
ADC_CLOCK_INTERNAL
ADC_CLOCK_DIV_32
Devoluciones:
Funcin:
Disponibilidad:
Se requiere:
Ejemplos:

undefinere
Configura el convertidor analgico a digital.
ONLy los dispositivos con construidos en convertidor analgico a digital.
Las constantes se definen en el archivo de los dispositivos .h.
setup_adc_ports (ALL_ANALOG);
setup_adc (ADC_CLOCK_INTERNAL);
set_adc_channel (0);
valor = read_adc ();
setup_adc (ADC_OFF);

290

Funciones
integradas
Archivos de ejemplo:
UNlso Ver:

ex_admm.do
SEtup_adc_ports (),SEt_adc_channel (),read_adc (),#DISPOSITIVO, ADC
general, Consulte el archivo de cabecera para el dispositivo seleccionado

setup_adc_ports ()
Syntax: (setup_adc_portsvalor)
SEtup_adc_ports (correosRTS, [referencia])
parmetros:

VirginiaLue - Una constante definida en los dispositivos .h archivo


puertos - Es una constante que especifica los pasadores de ADC para utilizar
referencia - Es una constante opcional que especifica la referencia ADC utilizar
Por defecto, la tensin de referencia son Vss y Vdd

Devoluciones:
Funcin:

UNlso Ver:

undefinere
Permite configurar los pines ADC para ser analgica, digital o una combinacin y la
referencia de tensin debe usarse para calcular el valor ADC. Las combinaciones pin
analgico permitidos varan dependiendo del chip y se define mediante la operacin OR
para concatenar los bordes seleccionados juntos. Compruebe el dispositivo de archivo
de inclusin para obtener una lista completa de pines disponibles y ajustes de voltaje de
referencia. Las constantes ALL_ANALOG y NO_ANALOGS son vlidos para todos los
chips. Algunas otras definiciones ejemplo pines son:

SEtup_adc (),read_adc(),SEt_adc_channel (),ADC general

setup_adc_reference ()
Syntax: setup_adc_reference (referencia)
Parmetros: referencia - La referencia de tensin para ajustar el ADC. Las opciones vlidas dependen del
dispositivo, vase el archivo .h del dispositivo para todas las opciones. Entre las
opciones tpicas incluyen:
VSS_VDD
VSS_VREF
VREF_VREF
VREF_VDD
Devoluciones:
Funcin:
Digital

undefinere
To ajustar la referencia de tensin positiva y negativa para el Convertidor Analgico a
(ADC) utiliza.

Disponibilidad:

ONLy en dispositivos con un ADC y tiene ANSELx, siendo X la letra de puerto,


se registra para el ajuste de los cuales pines estn analgico o digital.
291

CCS C 10082015

Se requiere:
Ejemplos:

Nada
set_adc_reference (VSS_VREF);

Archivos de ejemplo:
UNlso Ver:

SEt_analog_pins (),SEt_adc_channel (),read_adc (),SEtup_adc (),SEtup_adc_ports


(),ADC general

setup_at ()
Syntax: setup_at (SEAjus tes);
Parmetros: los ajustes - La configuracin del mdulo AT. Ver archivo de cabecera del dispositivo para todas las
opciones.
Algunas opciones tpicas incluyen:
AT_ENABLED
AT_DISABLED
AT_MULTI_PULSE_MODE
AT_SINGLE_PULSE_MODE
Devoluciones:
Funcin:

Nada
To configuracin del mdulo temporizador angular (AT).

Disponibilidad:

Todos los dispositivos con un mdulo de AT.

Se requiere:
Ejemplos:

Constantes definidas en el archivo .h del dispositivo


setup_at (AT_ENABLED | AT_MULTI_PULSE_MODE | AT_INPUT_ATIN);

Archivos de ejemplo:
UNlso Ver:

setup_ccp1 ()
setup_ccp4 ()

Ninguna
unt_set_resolution (),unt_get_resolution (),unt_set_missing_pulse_delay
(),unt_get_missing_pulse_delay (),unt_get_period (),at_get_phase_counter (),unt_set_set_point
(),at_get_set_point (), At_get_set_point_error (), unt_enable_interrupts (),unt_disable_interrupts
(),at_clear_interrupts (),unt_interrupt_active (),unt_setup_cc (),unt_set_compare_time (),
unt_get_capture (),unt_get_status ()

setup_ccp2 ()
setup_ccp5 ()

Syntax: setup_ccp1 (modo) O setup_ccp1 (modo, PWM)


288

setup_ccp3 ()
setup_ccp6 ()

Funciones
integradas

parmetros:

SEtup_ccp2 (modo) O setup_ccp2 (modo, PWM)


Setup_ccp3 (modo) O setup_ccp3 (modo, PWM)
Setup_ccp5 (modo) O setup_ccp5 (modo, PWM)
Setup_ccp6 (modo) O setup_ccp6 (modo, PWM)
metrooda yos una constante. constantes vlidas se definen en los dispositivos .h
archivo y se refieren a dispositivos .h archivo para todas las opciones, algunas
opciones son las siguientes:
Desactivar el
CCP:
CCP_OFF
Establecer PCC al modo de captura:
Captura CCP_CAPTURE_FE cayendo CCP_CAPTURE_RE
borde
Capturar en el flanco ascendente
CCP_CAPTURE_DIV_4
Capturar despus de 4
pulsos CCP_CAPTURE_DIV_16
Capturar despus
de 16 pulsos
Establecer PCC para el modo de comparacin:
CCP_COMPARE_SET_ON_MATCH salida alta en comparacin
CCP_COMPARE_CLR_ON_MATCH UNEDtput bajo en
comparar CCP_COMPARE_INT
enrrumpir en
comparar CCP_COMPARE_RESET_TIMER
Restablecer
contador de tiempo en comparar
Establecer CCP en modo PWM:
CCP_PWM impulso de capacitacin modulador de ancho
CCP_PWM_H_H
CCP_PWM_H_L
CCP_PWM_L_H
CCP_PWM_L_L
CCP_PWM_FULL_BRIDGE
CCP_PWM_FULL_BRIDGE_REV
CCP_PWM_HALF_BRIDGE
CCP_SHUTDOWN_ON_COMP1
CCP_SHUTDOWN_ON_COMP2

shutdown sobre el cambio Comparador 1


shutdown sobre el cambio Comparador 2

CCP_SHUTDOWN_ON_COMP

De cualquier Comp. 1 o 2 cambios

CCP_SHUTDOWN_ON_INT0

VIL en el pin INT

CCP_SHUTDOWN_ON_COMP1_INT0

VIL en el pin INT o cambio Comparador 1

CCP_SHUTDOWN_ON_COMP2_INT0

VIL en el pin INT o cambio Comparador 2

CCP_SHUTDOWN_ON_COMP_INT0

VIL en el pin INT o Comparador 1 o


2 cambios

CCP_SHUTDOWN_AC_L
CCP_SHUTDOWN_AC_H
CCP_SHUTDOWN_AC_F

pasadores de arrastre A y C de alta


pasadores de arrastre A y C de baja
Colocar las clavijas A y C de los tres estados

CCP_SHUTDOWN_BD_L
CCP_SHUTDOWN_BD_H

Colocar las clavijas B y D de alta


Colocar las clavijas B y D baja

287

Funciones
integradas
CCP_SHUTDOWN_BD_F

pasadores de arrastre B y D de los tres

CCP_SHUTDOWN_RESTART
CCP_DELAY

el reinicio del sistema despus de un evento


nosel retraso e-banda muerta

PWM Pensilvaniarmetro es un parmetro opcional para los chips que incluye


mdulo de PECC. Este parmetro permite ajustar el tiempo de apagado. El valor
puede ser 0 a 255.
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

Indefinido
Inicializar el PCC. Los contadores de CCP se puede acceder mediante el CCP_1
variables de largo y CCP_2. El PCC funciona en 3 modos. En el modo de captura que
copiar el valor de recuento del temporizador 1 a CCP_x cuando se produce el evento
pin de entrada. En el modo de comparacin se disparar una accin cuando el
temporizador 1 y CCP_x son iguales. En el modo PWM que va a generar una onda
cuadrada. El asistente PCW ayudar a establecer el modo de temporizador y la
configuracin correcta para una aplicacin particular.
This funcin slo est disponible en dispositivos con hardware de CCP.
Las constantes se definen en el archivo de los dispositivos .h.
setup_ccp1 (CCP_CAPTURE_RE);

ex_pwm.do,ex_ccpmp.do,ex_ccp1s.do
SEt_pwmX_duty (), Set_ccpX_compare_time (), set_timer_period_ccpX (),
set_timer_ccpX (), get_timer_ccpX (), get_capture_ccpX (),
get_captures32_ccpX ()

setup_clc1 () setup_clc2 () setup_clc3 () setup_clc4 ()


Syntax: SEtup_clc1 (modo); setup_clc2
(modo);
setup_clc3
(modo);
setup_clc4
(modo);
Parmetros: Modo - El modo de configurar el mdulo configurable de la clula lgica (CLC) en. Ver archivo
.h del dispositivo para todas las opciones. Algunas opciones tpicas incluyen:
CLC_ENABLED
CLC_OUTPUT
CLC_MODE_AND_OR
CLC_MODE_OR_XOR
Devoluciones:
Funcin:

Indefinido.
Se instala el mdulo de CLC realizado la lgica especificada. Por favor, consulte la
hoja de datos del dispositivo para determinar lo que cada entrada al mdulo CLC
hace por la funcin lgica de seleccin
289

CCS C 10082015

Disponibilidad:
Devoluciones:
Ejemplos:
Archivos de ejemplo:
UNlso Ver:

On dispositivos con un mdulo de CLC.


Indefinido.
setup_clc1 (CLC_ENABLED | CLC_MODE_AND_OR);

Ninguna
clcx_setup_gate (),clcx_setup_input ()

setup_comparator ()
Syntax: setup_comparator (modo)
parmetros:

metrooda yos una constante. constantes vlidas estn en los dispositivos .h del
archivo se refiere a dispositivos .h archivo de opciones vlidas. Algunas opciones
tpicas son las siguientes:
A0_A3_A1_A2
A0_A2_A1_A2
NC_NC_A1_A2
NC_NC_NC_NC
A0_VR_A1_VR
A3_VR_A2_VR
A0_A2_A1_A2_OUT_ON_A3_A4
A3_A2_A1_A2

Devoluciones:
Funcin:

Disponibilidad:

undefinere
Establece el mdulo comparador analgico. Las constantes anteriores tienen cuatro
partes que representan las entradas: C1-, C1 +, C2-, C2 +
This funcin slo est disponible en dispositivos con un comparador analgico.

requiere

Las constantes se definen en el archivo de los dispositivos .h.

Ejemplos:

// Establece dos comparadores independientes (C1 y C2),


// C1 utiliza A0 y A3 como entradas (- y +), y C2
// Utiliza A1 y A2 como
entradas setup_comparator
(A0_A3_A1_A2);

Archivos de ejemplo:

UNlso Ver:
290

ex_comp.do

Informacin general del comparador analgico

Funciones
integradas

setup_counters ()
Syntax: (setup_countersrtcc_state,ps_state)
parmetros:

rtcc_state mamy ser una de las constantes definidas en los dispositivos .h


archivo. Por ejemplo: RTCC_INTERNAL, RTCC_EXT_L_TO_H o
RTCC_EXT_H_TO_L
ps_state mamy ser una de las constantes definidas en los dispositivos .h archivo.
Por ejemplo: RTCC_DIV_2, RTCC_DIV_4, RTCC_DIV_8, RTCC_DIV_16,
RTCC_DIV_32, RTCC_DIV_64, RTCC_DIV_128, RTCC_DIV_256, WDT_18MS,
WDT_36MS, WDT_72MS, WDT_144MS, WDT_288MS, WDT_576MS, WDT_1152MS,
WDT_2304MS

Devoluciones:
Funcin:

undefinere
Se instala el RTCC o WDT. El rtcc_state determina lo que impulsa el RTCC. El estado
PS establece un pre-escalador, ya sea para el RTCC o WDT. El pre-escalador se
alargar el ciclo del contador indicado. Si el prescaler RTCC se establece el WDT se
establecer en WDT_18MS. Si el prescaler WDT se establece el RTCC se establece en
RTCC_DIV_1.
ThiSe proporciona la funcin s para la compatibilidad con versiones anteriores.
setup_timer_0 y setup_WDT son los reemplazos recomendados cuando sea posible.
Para los dispositivos de PCB si un reloj RTCC externo se utiliza y se utiliza entonces
esta funcin se debe utilizar un pre-escalador WDT.

Disponibilidad:
Se requiere:
Ejemplos:
Archivos de ejemplo:
UNlso Ver:
seleccionado

Todos los dispositivos


Las constantes se definen en el archivo de los dispositivos .h.
setup_counters (RTCC_INTERNAL, WDT_2304MS);

Ninguna
SEwdt TUP (),setup_timer 0 (), Consulte el archivo de cabecera para el dispositivo

setup_cog ()
Syntax: setup_cog (modo, [shutdown]);
SEtup_cog (modo, [apagado], [sterring]);
Parmetros: Modo- La configuracin del mdulo COG. Ver archivo .h del dispositivo para todas las opciones.
Algunas opciones tpicas incluyen:

COG_ENABLED
291

CCS C 10082015

COG_DISABLED
COG_CLOCK_HFINTOSC
COG_CLOCK_FOSC

shutdown- La instalacin de la funcin de auto-apagado del mdulo


COG. Ver archivo .h del dispositivo para todas las opciones. Algunas
opciones tpicas incluyen:

COG_AUTO_RESTART
COG_SHUTDOWN_ON_C1OUT
COG_SHUTDOWN_ON_C2OUT

steering- Parmetro opcional para dirigir la seal PWM para COG pines de salida y
/ o seleccionando
el COG pasadores nivel esttico. Se utiliza cuando el COG se establece para PWM
directrices o sncrona fueron dirigidos
PWlos modos M. No disponible en todos los dispositivos, ver archivo .h del dispositivo
si est disponible y para todas las opciones.
Algunas opciones tpicas incluyen:

Devoluciones:
Funcin:

Disponibilidad:
Ejemplos:

Archivos de ejemplo:
UNlso Ver:

COG_PULSE_STEERING_A
COG_PULSE_STEERING_B
COG_PULSE_STEERING_C
COG_PULSE_STEERING_D

undefinere
Se instala el generador mdulo de salida complementaria (COG), la funcin de
auto-apagado de
el mdulo y si novillos disponibles la seal a los diferentes pines de salida.
Todos los dispositivos con un mdulo COG.
setup_cog (COG_ENABLED | COG_PWM | COG_FALLING_SOURCE_PWM3 |
COG_RISING_SOURCE_PWM3, COG_NO_AUTO_SHUTDOWN,
COG_PULSE_STEERING_A | COG_PULSE_STEERING_B);

Ninguna
SEt_cog_dead_band (),set_cog_phase(),SEt_cog_blanking (),cog_staTUS (),cog_restart ()

setup_crc ()
Syntax: setup_crc (polynomial trminos)
Parmetros: polinomio- Esta configuracin del polinomio real en el motor de CRC. La potencia de cada
plazo se pasa separados por una coma. se permite 0, pero ignorados. La siguiente
definir se aade al archivo de cabecera del dispositivo para activar la direccin de
desplazamiento ascendente hacia la izquierda:
CRC_LITTLE_ENDIAN
292

Funciones
integradas

Devoluciones:

Nada

Funcin:

Configura el registro del motor CRC con el polinomio.

Disponibilidad:

ONLdispositivos de Y con un mdulo integrado en el CCR.

Ejemplos:

setup_crc (12, 5); // CRC polinomio es x12 + x5 + 1


setup_crc (16, 15, 3, 1); // CRC polinomio es x16 + x15 + x3 + x1 + 1

Archivos de ejemplo:

Ninguna

UNlso Ver:

dorc_init (), crc_calc (), crc_calc8 ()

setup_cwg ()
Syntax: setup_cwg (modo,shutdown,tiempo muerto_creciente,tiempo muerto_que cae)
Parmetros: Modo- La configuracin del mdulo de GTC. Ver archivo .h del dispositivo para todas las opciones.
Algunas opciones tpicas incluyen:

CWG_ENABLED
CWG_INCAPACITADO
CWG_OUTPUT_B
CWG_OUTPUT_A

shutdown- La instalacin de la funcin de auto-apagado del mdulo


de GTC. Ver archivo .h del dispositivo para todas las opciones.
Algunas opciones tpicas incluyen:
CWG_AUTO_RESTART
CWG_SHUTDOWN_ON)
COMP1
CWG_SHUTDOWN_ON_FLT
CWG_SHUTDOWN_ON_CLC2
dead_time_rising- Valor que especifica el tiempo muerto entre A y B en el
flanco ascendente. (0-63)
dead_time_rising- Valor que especifica el tiempo muerto entre A y B en el
flanco de bajada. (0-63)
Devoluciones:
Funcin:

Disponibilidad:
Ejemplos:

undefinere
Se instala el mdulo de GTC, la funcin de auto-apagado del mdulo y el subir
y bajar los tiempos muertos del mdulo.
Todos los dispositivos con un mdulo de GTC.
setup_cwg (CWG_ENABLED | CWG_OUTPUT_A | CWG_OUTPUT_B |

293

CCS C 10082015

CWG_INPUT_PWM1, CWG_SHUTDOWN_ON_FLT, 60,30);

Archivos de ejemplo:
UNlso Ver:

Ninguna

cwg_status (),cwg_reiniciar( )

setup_dac ()
Syntax: setup_dac (modo);
parmetros:

metrooda- The opciones vlidas varan dependiendo del dispositivo. Ver archivo de
los dispositivos .h para todas las opciones. Algunas opciones tpicas incluyen:
DAC_OUTPUT

Devoluciones:
Funcin:

undefinere
Configura el DAC incluyendo voltaje de referencia.

Disponibilidad:

ONLy los dispositivos con construidos en convertidor digital a analgico.

Se requiere:
Ejemplos:

Las constantes se definen en el archivo de los dispositivos .h.


setup_dac (DAC_VDD | DAC_OUTPUT);
dac_write
(valor);

Archivos de ejemplo:
UNlso Ver:
seleccionado

Ninguna

dac_writo (),DAC Informacin general, Ver archivo de cabecera para el dispositivo

setup_dedicated_adc ()
Syntax: setup_dedicated_adc (core, el modo);
Parmetros: ncleo - El ncleo ADC dedicado para configurar
metrooda -. El modo de configurar el ncleo ADC dedicado en Ver el archivo .h del
dispositivo todas las opciones. Algunas opciones tpicas incluyen:
294

Funciones
integradas

Devoluciones:
Funcin:

ADC_DEDICATED_TAD_MUL_2
ADC_DEDICATED_TAD_MUL_3

Configura una cuestin de tiempo y de velocidad de reloj de muestreo del


ADC ncleo dedicado.
Funcin debe ser llamada despus de la funcin
setup_adc ().
On dsPIC33EPxxGSxxx la familia de dispositivos.

Se requiere:

Nada.
SEtup_dedicated_adc (0, ADC_DEDICATED_CLOCK_DIV_2
| ADC_DEDICATED_TAD_MUL_1025);

Archivos de ejemplo:
UNlso Ver:

ADC_DEDICATED_CLOCK_DIV_6

Indefinido

Disponibilidad:

Ejemplos:

ADC_DEDICATED_CLOCK_DIV_2

Ninguna

SEtup_adc (), SEtup_adc_ports (),set_adc_channe(l ), read_adc (),


adc_done(),SEt_dedicated_adc_channel (),ADC general

setup_external_memory ( )
Syntax: SETUP_EXTERNAL_MEMORY ( modmi);
parmetros:
juntos.

metrooda yos una o ms constantes desde el archivo de cabecera dispositivo OR siempre

Devoluciones:
Funcin:

undefinere
Establece el modo del bus de memoria externa.

Disponibilidad:

ONLY los dispositivos que permiten a la memoria externa.

Se requiere:
Ejemplos:

Las constantes se definen en el archivo device.h


setup_external_memory (EXTMEM_WORD_WRITE
| EXTMEM_WAIT_0);
setup_external_memory (EXTMEM_DISABLE);

Archivos de ejemplo:
UNlso Ver:
general

Ninguna

WRPROGRAMA EEPROM ITE () , Escribir en la memoria PROGRAMA (), ExMemoria interna

295

CCS C 10082015

setup_high_speed_adc ()
Syntax: setup_high_speed_adc (modo);
Parmetros: Modo - Analog to modo digital. Las opciones vlidas varan dependiendo del dispositivo. Ver
archivo de los dispositivos .h para todas las opciones. Algunas opciones tpicas incluyen:

ADC_OFF
ADC_CLOCK_DIV_1
ADC_HALT_IDLE - El ADC no funciona cuando est inactivo PIC.
Devoluciones:
Funcin:

Indefinido
Configura la velocidad de reloj ADC de alta velocidad y otras opciones de ADC de alta
velocidad, incluyendo, cuando las interrupciones de ADC se produce, el formato de
resultado de salida, la orden de conversin, si el par ADC se muestrea de forma secuencial
o simultnea, y si la muestra dedicada y retencin es continua muestreada o muestras
cuando se produce un evento de disparo.

Disponibilidad:

ONLy en los dispositivos dsPIC33FJxxGSxxx.

Se requiere:
Ejemplos:

Las constantes se definen en el dispositivo .h.


setup_high_speed_adc_pair (0, INDIVIDUAL_SOFTWARE_TRIGGER);
setup_high_speed_adc (ADC_CLOCK_DIV_4);
read_high_speed_adc (0, START_AND_READ, resultado);
setup_high_speed_adc (ADC_OFF);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_high_speed_adc_pair (),read_high_speed_adc (),high_speed_adc_done()

setup_high_speed_adc_pair ( )
Syntax: setup_high_speed_adc_pair (pair, el modo de);
Parmetros: par - El nmero de alta velocidad ADC par de configuracin, los valores vlidos son del 0 al nmero
total de ADC
pairs. 0 conjuntos de hasta par ADC an0 y AN1, 1 fija hasta ADC AN2 par y AN3, etc.
metrooda - Modo de par ADC. Las opciones vlidas varan dependiendo del dispositivo. Ver
archivo de los dispositivos .h para todas las opciones. Algunas opciones tpicas incluyen:

INDIVIDUAL_SOFTWARE_TRIGGER
GLOBAL_SOFTWARE_TRIGGER
PWM_PRIMARY_SE_TRIGGER
PWM_GEN1_PRIMARY_TRIGGER
PWM_GEN2_PRIMARY_TRIGGER
Devoluciones:
296

Indefinido

Funciones
integradas

Funcin:

Permite configurar los pines analgicos y fuente de disparo para el par ADC especificado.
Tambin establece si
la conversin ADC para el par especificado provoca la interrupcin ADC
comn.
Si se pasa de cero para el segundo parmetro los pines analgicos correspondientes se
establecen en los pines digitales.

Disponibilidad:

ONLy en los dispositivos dsPIC33FJxxGSxxx.

Se requiere:
Ejemplos:

Las constantes se definen en el dispositivo .h.


setup_high_speed_adc_pair (0, INDIVIDUAL_SOFTWARE_TRIGGER);
setup_high_speed_adc_pair (1, GLOBAL_SOFTWARE_TRIGGER);
setup_high_speed_adc_pair (2, 0) - establece AN4 y AN5 como pines digitales.

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_high_speed_adc (),read_high_speed_adc (),high_speed_adc_done()

setup_hspwm_blanking ( )
Syntax: setup_hspwm_blanking (unit, ajustes, retraso);
Parmetros: unidad - La unidad de alta velocidad PWM para ajustar.
start_delay - Valor opcional de 0 a 63 que especifica a continuacin mero de ciclos PWM
que esperar antes de generar el primer evento de disparo. Para algunos dispositivos, uno de
los siguientes puede ser opcional es OR con el valor:
HSPWM_COMBINE_PRIMARY_AND_SECONDARY_TRIGGER
HSPWM_SEPERATE_PRIMARY_AND_SECONDARY_TRIGGER
divisor - Valor opcional de 1 a 16 que especifica el divisor evento de disparo.
trigger_value - Valor opcional de 16 bits que especifica el gatillo primario comparar el tiempo.
strigger_value - Valor opcional de 16 bits que especifica el gatillo secundario comparar
el tiempo. No disponible en todos los dispositivos, consulte la hoja de datos del dispositivo
disponibilidad.
Devoluciones:
Funcin:
Disponibilidad:

Se requiere:

undefinere
Establece el evento de disparo de alta velocidad PWM.
ONLy en dispositivos con un mdulo PWM incorporada de alta
velocidad (dsPIC33FJxxGSxxx, dsPIC33EPxxxMUxxx, dispositivos
dsPIC33EPxxxMCxxx, y dsPIC33EVxxxGMxxx)
Ninguna
297

CCS C 10082015

Ejemplos:

setup_hspwm_trigger (1, 10, 1, 0x2000);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_hspwm_unit (),SEt_hspwm_phase (), SEt_hspwm_duty (),set_hspwm_event


(),SEtup_hspwm_trigger (),SEt_hspwm_override (),
get_hspwm_capture (),SEtup_hspwm_chop_clock (), setup_hspwm_unit_chop_clock ()
SEtup_hspwm (),SEtup_hspwm_secondary ()

setup_hspwm_chop_clock ( )
Syntax: setup_hspwm_chop_clock (SEAjus tes);
Parmetros: los ajustes - Un valor de 1 a 1024 para establecer el divisor de reloj chuleta. Tambin uno de los
siguientes puede ser usando OR con el valor:
HSPWM_CHOP_CLK_GENERATOR_ENABLED
HSPWM_CHOP_CLK_GENERATOR_DISABLED
Devoluciones:
Funcin:
Disponibilidad:

Indefinido
Configuracin y alta velocidad PWM Chop Generador de reloj y divisor.
ONLy en dispositivos con un mdulo PWM incorporada de alta
velocidad (dsPIC33FJxxGSxxx, dsPIC33EPxxxMUxxx, dispositivos
dsPIC33EPxxxMCxxx, y dsPIC33EVxxxGMxxx)

Se requiere:
Ejemplos:

Ninguna
setup_hspwm_chop_clock (HSPWM_CHOP_CLK_GENERATOR_ENABLED | 32);

Archivos de ejemplo:
UNlso Ver:

298

Ninguna

SEtup_hspwm_unit (),SEt_hspwm_phase (), SEt_hspwm_duty (),set_hspwm_event


(),SEtup_hspwm_blanking (),setup_hspwm_desencadenar(),SEt_hspwm_override
(),get_hspwm_capture (),SEtup_hspwm_unit_chop_clock ()
SEtup_hspwm (),SEtup_hspwm_secondary ()

Funciones
integradas

setup_hspwm_trigger ()
Syntax: setup_hspwm_trigger (unit, [start_ retardo], [separador], [trigger_value], [strigger_value]);
Parmetros: unidad - La unidad de alta velocidad PWM para ajustar.
SEAjus tes - Configuracin para configurar la alta velocidad PWM Leading Edge-ciega. Las
opciones vlidas varan dependiendo del dispositivo. Ver archivo de cabecera del dispositivo
para todas las opciones. Algunas opciones tpicas incluyen:
HSPWM_RE_PWMH_TRIGGERS_LE_BLANKING
HSPWM_FE_PWMH_TRIGGERS_LE_BLANKING
HSPWM_RE_PWML_TRIGGERS_LE_BLANKING
HSPWM_FE_PWML_TRIGGERS_LE_BLANKING
HSPWM_LE_BLANKING_APPLIED_TO_FAULT_INPUT
HSPWM_LE_BLANKING_APPLIED_TO_CURRENT_LIMIT_INPUT

retrasar - 16 bits constante o variable para especificar el tiempo de supresin de vanguardia.


Devoluciones:
Funcin:
alta velocidad.

undefinere
Establece el tiempo de Vanguardia y Supresin de vanguardia de supresin de la PWM de

Disponibilidad:
velocidad

ONLy en los dispositivos con un sistema incorporado en el mdulo de PWM de alta


(DsPIC33FJxxGSxxx, dsPIC33EPxxxMUxxx, dispositivos
dsPIC33EPxxxMCxxx, y dsPIC33EVxxxGMxxx)

Se requiere:
Ejemplos:

Ninguna
setup_hspwm_blanking (HSPWM_RE_PWMH_TRIGGERS_LE_BLANKING, 10);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_hspwm_unit (),SEt_hspwm_phase (), SEt_hspwm_duty (),set_hspwm_event


(),SEtup_hspwm_blanking (),set_hspwm_override (),
get_hspwm_capture (),SEtup_hspwm_chop_clock (), setup_hspwm_unit_chop_clock ()
SEtup_hspwm (),SEtup_hspwm_secondary ()

setup_hspwm_unit ()
Syntax: setup_hspwm_unit (unit, el modo, [dead_time], [alt_dead_time]);
SEt_hspwm_duty (unit, primaria, [secundaria]);
Parmetros: unidad - La unidad de alta velocidad PWM para ajustar.
299

CCS C 10082015

metrooda -. El modo de configurar la unidad de alta velocidad de PWM en la opcin vlida


varan en funcin del dispositivo. Ver archivo de cabecera del dispositivo para todas las
opciones. Algunas opciones tpicas incluyen:
HSPWM_ENABLE
HSPWM_ENABLE_H
HSPWM_ENABLE_L
HSPWM_COMPLEMENTARY
HSPWM_PUSH_PULL
tiempo muerto - Opcional 16 bits constante o variable para especificar el tiempo muerto
para esta unidad PWM, por defecto es 0 si no se especifica.
unlt_dead_time - Opcional 16 bits constante o variable para especificar el tiempo muerto
alternativo para este
PWunidad de M, el valor de 0 si no se especifica.
Devoluciones:
Funcin:

undefinere
Se instala la unidad PWM de alta velocidad especificada.

Disponibilidad:
velocidad

ONLy en los dispositivos con un sistema incorporado en el mdulo de PWM de alta


(DsPIC33FJxxGSxxx, dsPIC33EPxxxMUxxx, dispositivos
dsPIC33EPxxxMCxxx, y dsPIC33EVxxxGMxxx)

Se requiere:
Ejemplos:

Las constantes se definen en el archivo .h del dispositivo


setup_hspwm_unit (1, HSPWM_ENABLE | SHPWM_COMPLEMENTARY, 100100);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEt_hspwm_phase (), SEt_hspwm_duty (),SEt_hspwm_event


(),SEtup_hspwm_blanking (),setup_hspwm_desencadenar(),SEt_hspwm_override
(),get_hspwm_capture (),SEtup_hspwm_chop_clock (),
setup_hspwm_unit_chop_clock () setup_hspwm (),SEtup_hspwm_secondary ()

setup_hspwm ()

setup_hspwm_secondary ( )

Syntax: setup_hspwm (modo, el valor);


SEtup_hspwm_secondary (modo, el valor); //si est
disponible
Parmetros: Modo -. El modo de configurar el mdulo PWM de alta velocidad en las opciones vlidas varan en
funcin del dispositivo. Ver archivo .h del dispositivo para todas las opciones. Algunas
opciones tpicas incluyen:
HSPWM_ENABLED
HSPWM_HALT_WHEN_IDLE
HSPWM_CLOCK_DIV_1
VirginiaLue - 16 bits constante o variable para especificar el perodo de bases de tiempo.
300

Funciones
integradas
Devoluciones:

undefinere

301

CCS C 10082015

Funcin:

To habilitar el mdulo de PWM de alta velocidad y configurar el Primario y Secundario Base


de tiempo del mdulo.

Disponibilidad:
velocidad

ONLy en los dispositivos con un sistema incorporado en el mdulo de PWM de alta


(DsPIC33FJxxGSxxx, dsPIC33EPxxxMUxxx, dispositivos
dsPIC33EPxxxMCxxx, y dsPIC33EVxxxGMxxx)

Se requiere:
Ejemplos:

Las constantes se definen en el archivo .h del dispositivo


setup_hspwm (HSPWM_ENABLED | HSPWM_CLOCK_DIV_BY4, 0x8000);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_hspwm_unit (),SEt_hspwm_phase (), SEt_hspwm_duty (),set_hspwm_event


(),SEtup_hspwm_blanking (),setup_hspwm_desencadenar(),SEt_hspwm_override
(),get_hspwm_capture (),SEtup_hspwm_chop_clock (),
setup_hspwm_unit_chop_clock () setup_hspwm_secondary ()

setup_hspwm_unit_chop_clock ( )
Syntax: setup_hspwm_unit_chop_clock (unit, ajustes);
Parmetros: unidad - La unidad PWM de alta velocidad de reloj chuleta de configurar.
SEAjus tes - Una configuracin para configurar la unidad de alta velocidad PWM cortan reloj.
Las opciones vlidas varan dependiendo del dispositivo. Ver archivo .h del dispositivo para
todas las opciones. Algunas opciones tpicas incluyen:
HSPWM_PWMH_CHOPPING_ENABLED
HSPWM_PWML_CHOPPING_ENABLED
HSPWM_CHOPPING_DISABLED
HSPWM_CLOP_CLK_SOURCE_PWM2H
HSPWM_CLOP_CLK_SOURCE_PWM1H
HSPWM_CHOP_CLK_SOURCE_CHOP_CLK_GENERATOR
Devoluciones:
Funcin:
Disponibilidad:
velocidad

Indefinido
Reloj Chop configuracin y alta velocidad de la unidad PWM
ONLy en los dispositivos con un sistema incorporado en el mdulo de PWM de alta
(DsPIC33FJxxGSxxx, dsPIC33EPxxxMUxxx, dispositivos
dsPIC33EPxxxMCxxx, y dsPIC33EVxxxGMxxx)

Se requiere:
Ejemplos:
302

Ninguna
setup_hspwm_unit_chop_clock (1, HSPWM_PWMH_CHOPPING_ENABLED
| HSPWM_PWML_CHOPPIJNG_ENABLED |

Funciones
integradas
HSPWM_CLOP_CLK_SOURCE_PWM2H);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_hspwm_unit (),SEt_hspwm_phase (), SEt_hspwm_duty (),set_hspwm_event


(),SEtup_hspwm_blanking (),setup_hspwm_desencadenar(),SEt_hspwm_override
(),get_hspwm_capture (),SEtup_hspwm_chop_clock (),
SEtup_hspwm (),SEtup_hspwm_secondary ()

setup_lcd ()
Syntax: setup_lcd (modo,preescalar, [Segments0_31], [Segments32_47]);
parmetros:

METROoda mamy ser cualquiera de las siguientes constantes para permitir que el LCD y
puede ser con OR con otras constantes en los dispositivos *.marido archivo:
LCD_DISABLED, LCD_STATIC, LCD_MUX12, LCD_MUX13, LCD_MUX14

Ver los dispositivos .marido file para opciones especficas de otro dispositivo.
preescalar mamy el arreglo con 1-16 para el reloj LCD.
Segments0-31 mamy ser cualquiera de las siguientes constantes con OR juntos cuando se
utiliza el
PIC16C92X serie de fichas ::

SEG0_4, SEG5_8, SEG9_11, SEG12_15, SEG16_19, SEG20_26,


SEG27_28, SEG29_31 ALL_LCD_PINS

when usando el / la serie PIC16F LF1xxx o PIC18F / LFxxxx de fichas, cada uno de los
segmentos estn activados de forma individual. Un valor de 1 permitir el segmento, 0
desactivar y utilizar el pasador para el funcionamiento normal de E / S.
32-47 segmentos when usando un chip con ms de 32 segmentos, esto permite segmentos
32
47. Un valor de 1 permitir el segmento, 0 se desactivarlo. El bit 0 corresponde al segmento
32 y el bit 15 corresponde al segmento 47.
Devoluciones:
Funcin:

Disponibilidad:

indefinido.
This funcin se utiliza para inicializar el mdulo del controlador LCD en la PIC16C92X y
PIC16F serie / LF193X de fichas.
ONLy en dispositivos con hardware integrado mdulo de controlador LCD.

requiere

Las constantes se definen en los dispositivos *.marido archivo.

Ejemplos:

Setup_lcd (LCD_MUX14 | LCD_STOP_ON_SLEEP, 2, ALL_LCD_PINS);


// PIC16C92X
Setup_lcd (LCD_MUX13 | LCD_REF_ENABLED | LCD_B_HIGH_POWER, 0, 0xFF0429);
// PIC16F / LF193X - Permite segmentos 0, 3, 5, 10, 16, 17, 18, 19,
20, 21, 22, 23

303

CCS C 10082015

Archivos de ejemplo:
UNlso Ver:

ex_92lcd.do

lcd_symbol(),lcd_load(),lcd_concontraste (),EnDescripcin interna LCD

setup_low_volt_detect ()
Syntax: setup_low_volt_detect (modo)
Parmetros: Modo mamy ser una de las constantes definidas en los dispositivos .h archivo. LVD_LVDIN,
LVD_45, LVD_42, LVD_40, LVD_38, LVD_36, LVD_35, LVD_33, LVD_30, LVD_28, LVD_27,
LVD_25, LVD_23, LVD_21, LVD_19
Ene de la siguiente puede ser con OR (via |) con lo anterior, si de alta tensin detectar tambin
est disponible
yon el dispositivo
LVD_TRIGGER_BELOW, LVD_TRIGGER_ABOVE
Devoluciones:
Funcin:

undefinere
This funcin controla el alta / baja tensin detectar mdulo en el dispositivo. Las constantes
de modo especifica el punto de disparo de tensin y un sentido de la variacin de ese punto
(disponible slo si la alta tensin del mdulo detecta est incluido en el dispositivo). Si el
dispositivo experimenta un cambio ms all del punto de disparo en la direccin
especificada se establece el indicador de interrupcin y si la interrupcin se permiti a las
ramas de ejecucin de la rutina de servicio de interrupcin.

Disponibilidad:
detectar.

This funcin slo est disponible con dispositivos que tengan el alta / baja tensin mdulo de

requiere

Las constantes se definen en el archivo devices.h.

Ejemplos:

setup_low_volt_detect (LVD_TRIGGER_BELOW | LVD_36);

This activara la alarma cuando la tensin est por debajo de 3,6 voltios

setup_nco ()
Syntax: setup_nco (SEAjus tes,inc_value)
Parmetros: los ajustes- Configuracin del mdulo de NCO. Ver archivo .h del dispositivo para todas las opciones.
Algunas opciones tpicas incluyen:
NCO_ENABLE
NCO_OUTPUT
NCO_PULSE_FREQ_MODE
NCO_FIXED_DUTY_MODE
inc_value- Valor que se incrementa el acumulador de NCO de 20 bits por.
304

Funciones
integradas

Devoluciones:
Funcin:

Indefinido
Se instala el mdulo de NCO y define el valor para incrementar el acumulador de 20 bits por.

Disponibilidad:
Ejemplos:

On dispositivos con un mdulo de NCO.


setup_nco (NCO_ENABLED | NCO_OUTPUT |
NCO_FIXED_DUTY_MODE | NCO_CLOCK_FOSC, 8192);

Archivos de ejemplo:
UNlso Ver:

Ninguna

get_nco_accumulator (),set_nco_inc_value(),get_nco_inc_value()

setup_opamp1 () setup_opamp2 () setup_opamp3 ()


Syntax:

setup_opamp1
(modo)
Setup_opamp2
(modo)
Setup_opamp3
(modo)

parmetros:

metrooda - El modo del amplificador de operacin. Ver archivo de los dispositivos .h para
todas las opciones. Algunas opciones tpicas incluyen:

Devoluciones:
Funcin:

Activa o desactiva el amplificador operacional perifrica interna de ciertos microPIC.


ONLpartes de Y con un amplificador operacional integrado (por ejemplo, PIC16F785).

Se requiere:

ONLpartes de Y con un amplificador operacional integrado (por ejemplo, PIC16F785).


setup_opamp1 (OPAMP_ENABLED);
setup_opamp2 (OPAMP_DISABLED);
setup_opamp3 (OPAMP_ENABLED | OPAMP_I_TO_OUTPUT);

Archivos de ejemplo:
UNlso Ver:

OPAMP_DISABLED

undefinere

Disponibilidad:

Ejemplos:

OPAMP_ENABLED

Ninguna

Ninguna

305

CCS C 10082015

setup_oscillator ()
Syntax: setup_oscillator (modo,afinar)
parmetros:
como

metrooda yos depende del chip. Por ejemplo, algunos chips permiten ajuste de velocidad tales
OSC_8MHZ o OSC_32KHZ. Otros chips de permiso de cambio de la fuente, como
OSC_TIMER1.
Thmiafinar (ONLy permitido en ciertas partes) es un int firmado con una gama de -31 a 31.

Devoluciones:
oscilador es estable.
Funcin:

Algunos chips devuelven un estado tal como OSC_STATE_STABLE para indicar el

Thicontroles de funcin S y devuelve el estado del oscilador RC interno en algunas partes. Ver
archivo de los dispositivos .h de opciones vlidas para un dispositivo en particular.
Tenga en cuenta que si no se especifica INTRC o INTRC_IO en #fuses y un retraso #Utilice
se utiliza para una opcin de velocidad vlido, entonces el compilador va a hacer esta
configuracin de forma automtica al inicio del main ().
WashingtonRT ENCIA: Si se cambia la velocidad en tiempo de ejecucin el compilador no
puede generar los retrasos correctos para algunas funciones integradas. El ltimo
RETRASO #use encontrado en el archivo siempre se supone que es la velocidad correcta.
Puede tener varias lneas de retardo para controlar el #Utilice la compiladores
conocimiento acerca de la velocidad.

Disponibilidad:

ONLpartes de Y con un registro OSCCON.

Se requiere:
Ejemplos:

Las constantes se definen en el archivo .h.


setup_oscillator (OSC_2MHZ);

Archivos de ejemplo:
UNlso Ver:

Ninguna

#FUSIBLES,Descripcin general oscilador interno

setup_pga ()
Syntax: setup_pga (mdulo, seAjus tes)
Parmetros: mdulo - Constante que especifica la ganancia del amplificador programable (PGA) para la
instalacin.
Devoluciones:
Funcin:
amplificador.
Disponibilidad:
306

Indefinido
This funcin permite la creacin de uno de los mdulos programable de ganancia del

Los dispositivos con un mdulo programable de ganancia del amplificador.

Se requiere:
Ejemplos:

Nada.

Funciones
integradas

SEtup_pga (PGA_ENABLED | PGA_POS_INPUT_PGAxP1 | PGA_GAIN_8X);

307

CCS C 10082015

Archivos de ejemplo:

Ninguna

UNlso Ver:

setup_pid ()
Syntax: setup_pid ([modo, [K1], [K2], [K3]);
Parmetros: Modo- La configuracin del mdulo PID. Las opciones para configurar el mdulo se definen en el
archivo de cabecera del dispositivo como:
PID_MODE_PID
PID_MODE_SIGNED_ADD_MULTIPLY_WITH_ACCUMULATION
PID_MODE_SIGNED_ADD_MULTIPLY
PID_MODE_UNSIGNED_ADD_MULTIPLY_WITH_ACCUMULATION
PID_MODE_UNSIGNED_ADD_MULTIPLY
PID_OUTPUT_LEFT_JUSTIFIED
PID_OUTPUT_RIGHT_JUSTIFIED
K1 - Parmetro opcional que especifica el coeficiente K1, por defecto en cero si no se
especifica. El coeficiente K1 se utiliza en los modos de PID y ADD_MULTIPLY. Cuando en el
modo de PID el coeficiente K1 se puede calcular con la siguiente frmula:
K1 = Kp + Ki * T + Kd / T
when en uno de los modos de ADD_MULTIPLY K1 es el valor mltiple.
K2 - Parmetro opcional que especifica el coeficiente K2, por defecto en cero si no se
especifica. El coeficiente K2 se utiliza en el modo de PID solamente y se calcula con la
siguiente frmula:
K2 = - (Kp + 2Kd / T)
K3 - Parmetro opcional que especifica el coeficiente K3, por defecto en cero si no se
especifica. El coeficiente K3 se utiliza en el modo de PID, nica y se calcula con la siguiente
frmula:
K3 = Kd / T
T es el perodo de muestreo en las frmulas anteriores.
Devoluciones:

Nada

Funcin:
To configurar el mdulo proporcional integral derivativo (PID), y para establecer los
coeficientes de entrada
(K1, K2 y K3).
Disponibilidad:
Se requiere:
308

Todos los dispositivos con un mdulo PID.


Las constantes se definen en el archivo .h del dispositivo.

Funciones
integradas
Ejemplos:

setup_pid (PID_MODE_PID, 10, -3, 50);

Archivos de ejemplo:
UNlso Ver:

Ninguna

pid_get_result (),pid_read(),pid_writo(),pid_busy()

setup_pmp (opcin, address_mask)


Syntax: setup_pmp (opciones, address_mask);
Parmetros: opciones- El modo del Maestro del puerto paralelo que permite establecer el modo Maestro del
puerto, opciones estroboscpicas de lectura-escritura y otras funcionalidades del mdulo
PMPort. Ver archivo .h del dispositivo para todas las opciones. Algunas opciones tpicas
incluyen:
PAR_PSP_AUTO_INC
PAR_CONTINUE_IN_IDLE
PAR_INTR_ON_RW // interrupcin en la lectura-escritura
PAR_INC_ADDR // incremento de direccin en 1 cada
// Ciclo de lectura / escritura
Modo Maestro PAR_MASTER_MODE_1 // 1
PAR_WAITE4 // 4 TCY Esperar a que despus de retencin de datos
//
estrobos
cpica
unddress_mask- Esto permite al usuario configurar la direccin de Registro de activacin
con un valor de 16 bits. Este valor determina qu lneas de direccin son activos desde el
16 de direccin de lneas PMA0 disponibles: PMA15.
Devoluciones:
Funcin:

Indefinido.
Permite configurar varias opciones en el mdulo de PMP. Las opciones estn presentes en el
archivo .h del dispositivo y que se utilizan para la configuracin del mdulo. El mdulo de
PMP es altamente configurable y esta funcin permite a los usuarios a las configuraciones
de configuracin como el mdulo esclavo, opciones de interrupcin, direccin opciones de
incremento / decremento, Direccin bits de habilitacin, y varias opciones estroboscpicas y
de retardo.

Disponibilidad:

ONLy los dispositivos con un sistema incorporado en el mdulo Maestro del puerto paralelo.

Se requiere:
Ejemplos:

Las constantes se definen en el archivo .h del dispositivo.


setup_psp (PAR_ENABLE | // Establece el modo principal con
direccin
PAR_MASTER_MODE_1 | PAR_ // lneas PMA0: PMA7
STOP_IN_IDLE, 0x00FF);

Archivos de ejemplo:

Ninguna
309

CCS C 10082015
UNlso Ver:

310

SEtup_pmp (), Pmp_address (), pmp_read (), psp_read (), psp_write (), pmp_write (),
psp_output_full (),psp_input_full(),psp_overflow (), Pmp_output_full (), pmp_input_full (),

Funciones
integradas
pmp_overflow ()
Ver archivo de cabecera para el dispositivo seleccionado

setup_psmc ()
Syntax: setup_psmc (unidad, Modo, tiempo, period_time, rising_edge, rise_time, falling_edge, fall_time);
parmetros:

unidad yos el nmero de unidad PSMC 1-4


metrooda yoEs uno de:

PSMC_SINGLE
PSMC_PUSH_PULL
PSMC_BRIDGE_PUSH_PULL
PSMC_PULSE_SKIPPING
PSMC_ECCP_BRIDGE_REVERSE
PSMC_ECCP_BRIDGE_FORWARD
PSMC_VARIABLE_FREQ
PSMC_3_PHASE

Para salidas complementarias utilizan una o barra (|) y PSMC_COMPLEMENTARY


Normalmente, el mdulo no se inicia hasta que los psmc_pins () se hace la llamada. Para
activar inmediatamente o en PSMC_ENABLE_NOW.
perodo decir ahs tres partes OR siempre juntos. La fuente de reloj, el divisor de reloj y los
eventos que pueden causar el perodo que se inicia.
Fuentes:

PSMC_SOURCE_FOSC

PSMC_DIV_1

Utilice cualquiera de los actos mencionados a continuacin.

PSMC_SOURCE_64MHZ
PSMC_SOURCE_CLK_PIN

divisores:
PSMC_DIV_2
PSMC_DIV_4
PSMC_DIV_8

Eventos:

periodo de tiempo yoes la duracin del perodo de duracin de las garrapatas. Una marca
es la fuente de reloj anterior dividido por el divisor.
rising_edge yoEs por cualquiera de los siguientes eventos que se disparan cuando la seal
se activa.

311

CCS C 10082015

rise_time yoes el momento en que la seal de garrapatas va activa (despus del inicio
del perodo) si el evento es PSMC_EVENT_TIME, de lo contrario no utilizado.
falling_edge es cualquiera de los siguientes eventos que se disparan cuando la seal pasa
a inactiva.
otoo yoes el momento en que la seal de garrapatas va inactivo (despus del inicio del
perodo) si el evento es PSMC_EVENT_TIME, de lo contrario no utilizado.
Eventos:

Devoluciones:
Funcin:

PSMC_EVENT_C2OUT
PSMC_EVENT_C3OUT
PSMC_EVENT_C4OUT
PSMC_EVENT_PIN_PIN

Inicializa una unidad PSMC con las caractersticas esenciales, tales como el tipo de PWM, el
perodo, el deber y diversos factores desencadenantes avanzados. Normalmente, esta
llamada no se inicia la PSMC. Se espera que todas las funciones de configuracin se llama
y los psmc_pins () se llama pasado para iniciar el mdulo PSMC. Estas dos llamadas son
todo lo que se requiere para un simple PWM. Las dems funciones que se pueden utilizar
para la configuracin avanzada y para cambiar dinmicamente la seal.
Todos los dispositivos equipados con el mdulo PSMC.

Se requiere:

Ninguna
// PWM simple, 10kHz a cabo en C0 pasador asumiendo un cristal de 20MHz
// De trabajo se establece
inicialmente en 25%
setup_psmc (1, PSMC_SINGLE,
PSMC_EVENT_TIME | PSMC_SOURCE_FOSC, nosotros
(100), PSMC_EVENT_TIME, 0,
PSMC_EVENT_TIME, nosotros
(25));
psmc_pins (1, PSMC_A);

Archivos de ejemplo:
UNlso Ver:

PSMC_EVENT_C1OUT

undefinere

Disponibilidad:

Ejemplos:

PSMC_EVENT_TIME

Ninguna

psmc_deadband(),psmc_sync(),psmc_blanking(),psmc_modulation(),psmc_shutdown(),
psmc_duTy (),psmc_freq_adjust (),psmc_pins()

setup_power_pwm ()
Syntax: setup_power_pwm (modos,POStscale,time_base,Educacin fsicaRIOD,Compare,Compare_postscale,
muerto_hora)
parmetros:
312

metroodas valors puede haber hasta uno de cada grupo de los siguientes:

Funciones
integradas
PWM_CLOCK_DIV_4, PWM_CLOCK_DIV_16,
PWM_CLOCK_DIV_64, PWM_CLOCK_DIV_128
PWM_DISABLED, PWM_FREE_RUN, PWM_SINGLE_SHOT,
PWM_UP_DOWN, PWM_UP_DOWN_INT
PWM_OVERRIDE_SYNC
PWM_UP_TRIGGER,
PWM_DOWN_TRIGGER
PWM_UPDATE_DISABLE, PWM_UPDATE_ENABLE
PWM_DEAD_CLOCK_DIV_2,
PWM_DEAD_CLOCK_DIV_4,
PWM_DEAD_CLOCK_DIV_8,
PWM_DEAD_CLOCK_DIV_16
postscale yoes un nmero entero entre 1 y 16. Este valor establece el postscale
salida PWM base de tiempo.
time_base yos un nmero entero entre 0 y 65535. Este es el valor inicial de la base de PWM
perodo yoes un nmero entero entre base de tiempo 0 y 4095. El PWM se incrementa
hasta que se alcanza este nmero.
doompare yos un nmero entero entre 0 y 255. Este es el valor que la base de tiempo
PWM se compara con, para determinar si un evento especial debe ser activado.
doompare_postscale yoes un nmero entero entre 1 y 16. Este postscaler afecta
comparar los eventos especiales gatillo.
tiempo muerto yoes un nmero entero entre 0 y 63. Este valor especifica la duracin de un
perodo fuera que debe ser insertado entre el ir fuera de un alfiler y la pasa de ella es un
servicio complementario
alfiler.
Devoluciones:
Funcin:
(PWM).

undefinere
Inicializa y configura el mdulo de control del motor de impulsos de modulacin de ancho

Disponibilidad:
alimentacin.

Todos los dispositivos equipados con control del motor o el mdulo de PWM de

Se requiere:
Ejemplos:

Ninguna
setup_power_pwm (PWM_CLOCK_DIV_4 | PWM_FREE_RUN |
PWM_DEAD_CLOCK_DIV_4,1,10000,1000,0,1,0);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEt_power_pwm_override (),SEtup_power_pwm_pins (),SEt_power_pwmX_duty ()

313

CCS C 10082015

(setup_power_pwm_pins )
Syntax: (setup_power_pwm_pinsmdulo0,mdulo1,mdulo2,mdulo3)
parmetros:

Para cada mdulo (dos clavijas) especifican:


PWM_PINS_DISABLED, PWM_ODD_ON, PWM_BOTH_ON,
PWM_COMPLEMENTARY

Devoluciones:
Funcin:

undefinere
Configura los pines del dispositivo de modulacin de ancho de pulso (PWM).

Disponibilidad:

Todos los dispositivos equipados con un PWM de control de potencia.

Se requiere:
Ejemplos:

Ninguna
setup_power_pwm_pins (PWM_PINS_DISABLED, PWM_PINS_DISABLED, PWM_PINS_DISABLED,
PWM_PINS_DISABLED);
setup_power_pwm_pins (PWM_COMPLEMENTARY,
PWM_COMPLEMENTARY, PWM_PINS_DISABLED, PWM_PINS_DISABLED);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_power_pwm (),SEt_power_pwm_override (),SEt_power_pwmX_duty ()

setup_psp (opcin, address_mask)


Syntax: setup_psp (opciones, address_mask);
SEtup_psp
(opciones);
parmetros:

Option- El modo del puerto paralelo esclavo. Esto permite establecer el modo de puerto de
esclavos, de lectura y escritura opciones estroboscpicas y otras funcionalidades del mdulo
de PMP / EPMP. Ver archivo de los dispositivos .h para todas las opciones. Algunas opciones
tpicas incluyen:
PAR_PSP_AUTO_INC
PAR_CONTINUE_IN_IDLE
PAR_INTR_ON_RW // interrupcin en la lectura-escritura
PAR_INC_ADDR // incremento de direccin en 1 cada
// Ciclo de lectura / escritura
PAR_WAITE4 // 4 TCY Esperar a que despus de retencin de datos
//
estrobo
scpica
unddress_mask- Esto permite al usuario configurar la direccin de Registro de activacin
con un valor de 16 bits o 32 bits (EPMP). Este valor determina qu lneas de direccin son

314

Funciones
integradas
activos desde el 16 de direccin de lneas PMA0 disponibles:
lneas PMA15 32
direcciones PMAO: PMA31 (EPMP solamente).

315

CCS C 10082015

Devoluciones:
Funcin:

Indefinido.
Permite configurar varias opciones en el mdulo de PMP / EPMP. Las opciones estn
presentes en el archivo device.h y se utilizan para configurar el mdulo. El mdulo de PMP /
EPMP es altamente configurable y esta funcin permite a los usuarios a las configuraciones
de configuracin como el modo esclavo, opciones de interrupcin, direccin opciones de
incremento / decremento, Direccin bits de habilitacin y varias opciones estroboscpicas y
de retardo.

Disponibilidad:
ONLy los dispositivos con un sistema incorporado en el mdulo de puerto paralelo o mdulo
Maestro del puerto paralelo mejorado.
Se requiere:
Ejemplos:

Las constantes se definen en el archivo de los dispositivos .h.


setup_psp (PAR_PSP_AUTO_INC | // Establece esclavo legado
// Modo con
PAR_STOP_IN_IDLE, 0x00FF); // Leer y escribir tampones
//autoincremento.

Archivos de ejemplo:
Ninguna
Ver tambin:
psp_output_full (),psp_input_full(),psp_overflow (),
Ver archivo de cabecera para el dispositivo seleccionado.

setup_pwm1 () setup_pwm2 ()
setup_pwm3 () setup_pwm4 ()
Syntax:

setup_pwm1 (SEAjus tes);


setup_pwm2 (SEAjus
tes);
setup_pwm3
(SEAjus
tes);
setup_pwm4 (SEAjus
tes);

Parmetros: los ajustes- Configuracin del mdulo PWM. Ver archivo .h del dispositivo para todas las opciones.
Algunas opciones tpicas incluyen:
PWM_ENABLED
PWM_OUTPUT
PWM_ACTIVE_LOW
Devoluciones:
Funcin:

Indefinido
Se instala el mdulo PWM.

Disponibilidad:
Ejemplos:

On dispositivos con un mdulo de PWM.


setup_pwm1 (PWM_ENABLED | PWM_OUTPUT);

Archivos de ejemplo:
UNlso Ver:
316

Ninguna

SEt_pwm_duty ()

Funciones
integradas

setup_qei ()
Syntax: setup_qei ( opciones, filtro, MaxCount );
parmetros:
opciones

Opciones- El modo del mdulo QEI. Ver los dispositivos de archivos .h para todas las

Algunas opciones comunes son:


QEI_MODE_X2
QEI_MODE_X4
filtrar - Este parmetro es opcional, el usuario puede habilitar los filtros digitales y
especifique el divisor de reloj.
Maxcount - Especifica el valor en el que para restablecer el contador de posicin.
Devoluciones:
Funcin:

voire
Configura la interfaz de encoder de cuadratura. Varios ajustes
como el modo y los filtros se pueden configurar.

Disponibilidad:

Los dispositivos que tienen el mdulo de QEI.

Se requiere:
Ejemplos:

Nada.
setup_qei (QEI_MODE_X2 |
QEI_RESET_WHEN_MAXCOUNT, QEI_FILTER_ENABLE_QEA
| QEI_FILTER_DIV_2,0x1000);

Archivos de ejemplo:
UNlso Ver:

Ninguna

qei_set_count (), qei_get_count () ,qei_status ()

setup_rtc ()
Syntax: setup_rtc () (opciones, calibracin);
parmetros:
opciones

Opciones- El modo del mdulo RTCC. Ver los dispositivos de archivos .h para todas las

Calibracin- Este parmetro es opcional y el usuario puede especificar un valor de 8 bits


que se escriba en el registro de configuracin de calibracin.
Devoluciones:
Funcin:

voire
Configura el reloj de tiempo real y el mdulo de calendario. El mdulo requiere una externa
317

CCS C 10082015

32Cristal de reloj de 0,768 kHz para el funcionamiento.


Disponibilidad:

Los dispositivos que tienen el mdulo de RTCC.

Se requiere:
Ejemplos:

Nada.
setup_rtc (RTC_ENABLE | SEGUNDOS RTC_OUTPUT, 0x00);
// Habilitar el mdulo de RTCC con el reloj de segundos y sin calibracin

Archivos de ejemplo:
UNlso Ver:

Ninguna

rtc_read (),rtc_alarm_read (),rtc_alarm_write (),setup_rtc_alarm


(),rtc_write (,SEtup_rtc ()

setup_rtc_alarm ()
Syntax: setup_rtc_alarm (opciones,mscara,repetir);
parmetros:
opciones

opciones- El modo del mdulo RTCC. Ver los dispositivos de archivos .h para todas las

mscara- Especifica los bits de la mscara de alarma para la configuracin de la alarma.


repetir- Especifica el nmero de veces que la alarma se repita. Puede tener un valor
mximo de 255.
Devoluciones:
Funcin:

voire
Configura la alarma del mdulo RTCC.

Disponibilidad:

Los dispositivos que tienen el mdulo de RTCC.

Se requiere:
Ejemplos:

Nada.
setup_rtc_alarm (RTC_ALARM_ENABLE, RTC_ALARM_HOUR, 3);

Archivos de ejemplo:
UNlso Ver:

Ninguna

rtc_read (),rtc_alarm_read (),rtc_alarm_write (),setup_rtc_alarm (),rtc_write (),SEtup_rtc ()

setup_sd_adc ()
Syntax: setup_sd_adc (settings1, la configuracin 2, settings3);

318

Funciones
integradas
parmetros:

SEttings1- ajustes para el registro SD1CON1 del mdulo ADC SD. Ver el dispositivo de
.marido presentar para todas las opciones. Algunas opciones incluyen:
1 SDADC_ENABLED
2 SDADC_NO_HALT
3 SDADC_GAIN_1
4 SDADC_NO_DITHER
5 SDADC_SVDD_SVSS
6 SDADC_BW_NORMAL
SEttings2- ajustes para el registro SD1CON2 del mdulo ADC SD. Ver el dispositivo de
.marido presentar para todas las opciones. Algunas opciones incluyen:
7 SDADC_CHOPPING_ENABLED
8 SDADC_INT_EVERY_SAMPLE
9 SDADC_RES_UPDATED_EVERY_INT
10 SDADC_NO_ROUNDING
SEttings3- ajustes para el registro SD1CON3 del mdulo ADC SD. Ver el dispositivo de
.marido presentar para todas las opciones. Algunas opciones incluyen:
11 SDADC_CLOCK_DIV_1
12 SDADC_OSR_1024
13 SDADC_CLK_SYSTEM

Devoluciones:
Funcin:

Nada
To configurar el Sigma-Delta convertidor analgico a digital (ADC SD) del mdulo.

Disponibilidad:
Ejemplos:

ONLdispositivos de Y con un mdulo ADC SD.


SEtup_sd_adc (SDADC_ENABLED | SDADC_DITHER_LOW,
SDADC_CHOPPING_ENABLED | SDADC_INT_EVERY_5TH_SAMPLE |
SDADC_RES_UPDATED_EVERY_INT, SDADC_CLK_SYSTEM |
SDADC_CLOCK_DIV_4);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEt_sd_adc_channel (),read_sd_adc(),SEt_sd_adc_calibration ()

setup_smtx ()
Syntax: setup_smt1 (modo,[perodo]);
SEtup_smt2 (modo,[perodo]);
Parmetros: Modo - La configuracin del mdulo SMT. Ver archivo .h del dispositivo para todas las
aOpciones. Algunas opciones tpicas incluyen:
SMT_ENABLED
SMT_MODE_TIMER

319

CCS C 10082015

SMT_MODE_GATED_TIMER
SMT_MODE_PERIOD_DUTY_CYCLE_ACQ
perodo - Parmetro opcional para especificar el valor de desbordamiento del
temporizador SMT, por defecto valor mximo si no se especifica.
Devoluciones:
Funcin:

Nada
Configura el mdulo de la seal de medicin del temporizador (SMT).

Disponibilidad:
Ejemplos:

ONLdispositivos de Y con un mdulo integrado de SMT.


setup_smt1 (SMT_ENABLED | SMT_MODE_PERIOD_DUTY_CYCLE_ACQ
| SMT_REPEAT_DATA_ACQ_MODE | SMT_CLK_FOSC);

Archivos de ejemplo:
UNlso Ver:

Ninguna

smtx_status (),stmx_starta(),smtx_stop (),smtx_update (),smtx_reset_timer


(),smtx_read (),smtx_write ()

setup_spi () setup_spi2 ()
Syntax: setup_spi (modo)
SEtup_spi2 (modo)
parmetros:

metrooda mamy el arreglo con:

Devoluciones:
Funcin:
UNlso Ver:

SPI_MASTER, SPI_SLAVE, SPI_SS_DISABLED


SPI_L_TO_H, SPI_H_TO_L
SPI_CLK_DIV_4, SPI_CLK_DIV_16,
SPI_CLK_DIV_64, SPI_CLK_T2
SPI_SAMPLE_AT_END, SPI_XMIT_L_TO_H
Las constantes de cada grupo pueden OR siempre junto a |.

undefinere
Inicializa la interfaz de puerto serie (SPI). Esto se utiliza para dispositivos de serie 2 o 3 hilos
que siguen un protocolo comn de reloj / datos.
spi_writo(),spi_leer(),spi_data_is_in(),SPI general

setup_timer_A ()
Syntax: setup_timer_A (modo);
parmetros:

320

metrooda valors pueden ser:


TA_OFF, TA_INTERNAL, TA_EXT_H_TO_L, TA_EXT_L_TO_H
TA_DIV_1, TA_DIV_2, TA_DIV_4, TA_DIV_8, TA_DIV_16, TA_DIV_32,

Funciones
integradas
TA_DIV_64, TA_DIV_128, TA_DIV_256
Constantes de diferentes grupos pueden estar OR siempre junto a |.
Devoluciones:
Funcin:

undefinere
SEts Tiempo de baja temporal A.

Disponibilidad:

This funcin slo est disponible en dispositivos con temporizador Un hardware.

Se requiere:
Ejemplos:

Las constantes se definen en el archivo .h del dispositivo.


setup_timer_A (TA_OFF);
setup_timer_A (TA_INTERNAL | TA_DIV_256);
setup_timer_A (TA_EXT_L_TO_H | TA_DIV_1);

Archivos de ejemplo:
UNlso Ver:

ninguna

get_timerA (),SEt_timerA (),HorarA general

setup_timer_B ()
Syntax: setup_timer_B (modo);
parmetros:

metrooda valors pueden ser:


TB_OFF, TB_INTERNAL, TB_EXT_H_TO_L, TB_EXT_L_TO_H
TB_DIV_1, TB_DIV_2, TB_DIV_4, TB_DIV_8, TB_DIV_16, TB_DIV_32,
TB_DIV_64, TB_DIV_128, TB_DIV_256
Constantes de diferentes grupos pueden estar OR siempre junto a |.

Devoluciones:
Funcin:

undefinere
SEts Temporizador B

Disponibilidad:

This funcin slo est disponible en dispositivos con hardware de temporizador B.

Se requiere:
Ejemplos:

Las constantes se definen en el archivo .h del dispositivo.


setup_timer_B (TB_OFF);
setup_timer_B (TB_INTERNAL | TB_DIV_256);
setup_timer_B (TA_EXT_L_TO_H | TB_DIV_1);

Archivos de ejemplo:
UNlso Ver:

ninguna

get_timerB (),SEt_timerB (),HorarB general

321

CCS C 10082015

setup_timer_0 ()
Syntax: setup_timer_0 (modo)
parmetros:

metrooda mamy el arreglo con uno o dos de las constantes definidas en los dispositivos
.h archivo. RTCC_INTERNAL, RTCC_EXT_L_TO_H o RTCC_EXT_H_TO_L
RTCC_DIV_2, RTCC_DIV_4, RTCC_DIV_8, RTCC_DIV_16, RTCC_DIV_32, RTCC_DIV_64,
RTCC_DIV_128, RTCC_DIV_256
Slo PIC18XXX: RTCC_OFF, RTCC_8_BIT
Ene constante puede ser utilizado de cada grupo con OR junto con el | operador.

Devoluciones:
Funcin:

undefinere
Permite configurar el temporizador 0 (tambin conocido como RTCC).

Advertencia:
On dispositivos PIC16 de edad avanzada, la configuracin de la pre-escalador pueden
deshacer el pre-escalador WDT.
Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Las constantes se definen en el archivo de los dispositivos .h.


setup_timer_0 (RTCC_DIV_2 | RTCC_EXT_L_TO_H);

Archivos de ejemplo:
UNlso Ver:

get_timer0 (),SEt_timer0 (),setucontadores p ()

setup_uart ()
Syntax: setup_uart (baudios,sTREAM) Setup_uart
(baudios) Setup_uart (baudios,
Corriente, reloj)
parmetros:

baudios yos una constante que representa el nmero de bits por segundo. A uno o cero
tambin puede hacerse pasar para controlar el estado activado / desactivado.
Corriente yos un identificador de flujo opcional.
Virutas con la avanzada UART tambin pueden utilizar las siguientes constantes:
UART_ADDRESS UART slo acepta datos con el noveno bit = 1
UART_DATA UART acepta todos los datos
Virutas con la Euart H / W pueden utilizar las siguientes constantes:
UART_AUTODETECT Espera a 0x55 caracteres y fija el tipo de UART suya para que
coincida. UART_AUTODETECT_NOWAIT Igual que el anterior funcin, excepto
devoluciones antes de 0x55 es
recibido. Kbhit () ser cierto cuando se hace el partido. Una llamada a GETC () borrar el
charcter.

322

Funciones
integradas
UART_WAKEUP_ON_RDA Wakes PIC subir de sueo cuando VN va de mayor a menor
dobloquear - Si se especifica esta es la frecuencia de reloj esta funcin debera asumir. El
valor por defecto proviene de la #Utilice RETRASO.
Devoluciones:
Funcin:

undefinere
Muy similar a SET_UART_SPEED. Si 1 se pasa como un parmetro, la UART est activado,
y si se pasa 0, UART est apagado. Si una velocidad de transmisin se pasa a ella, la UART
tambin est activada, si no est ya encendido.

Disponibilidad:

This funcin slo est disponible en dispositivos con un sistema incorporado en la UART.

Se requiere:
Ejemplos:

#RS232 USO
setup_uart (9600);
setup_uart (9600, rsOut);

Archivos de ejemplo:
UNlso Ver:

Ninguna

#RS232 USO, Putc (), getc (),RS232 I / O overview

setup_vref ()
Syntax: setup_vref (modmi|Valumi)
parmetros:

metrooda mamy el arreglo con una de las siguientes constantes:

FALSO (apagado)
VREF_LOW para VDD * VALOR / 24
VREF_HIGH para VDD * VALOR / 32 + VDD / 4
unY puede ser OR siempre con VREF_A2.

VirginiaLue yos un int 0-15.


UNlso Ver:

Descripcin general de tensin de referencia

setup_wdt ()
Syntax: setup_wdt (modo)
parmetros:

Constantes como: WDT_18MS, WDT_36MS, WDT_72MS, WDT_144MS,


WDT_288MS, WDT_576MS, WDT_1152MS, WDT_2304MS
Para algunas partes: WDT_ON, WDT_OFF

323

CCS C 10082015

.
Advertencia:
On dispositivos PIC16 de edad avanzada, la configuracin de la pre-escalador pueden
deshacer el pre-escalador del Timer0.
UNl
so
Ver
:

#FUSIBLES ,restart_wdt () ,WDT o Watch Dog Timer general


Descripcin general del oscilador interno

setup_zdc ()
Syntax: setup_zdc (modo);
Parmetros: Modo- La configuracin del mdulo ZDC. Las opciones para configurar el mdulo incluyen:

Devoluciones:
Funcin:

ZCD_DISABLED
ZCD_INVERTED
ZCD_INT_L_TO_H
ZCD_INT_H_TO_L

Nada
To configurar el mdulo de deteccin Zero_Cross (ZCD).

Disponibilidad:
Ejemplos:

ZCD_ENABLED

Todos los dispositivos con un mdulo ZCD.


setup_zcd (ZCD_ENABLE | ZCD_INT_H_TO_L);

Archivos de ejemplo:
UNlso Ver:

Ninguna

zcd_staTUS ()

shift_left ()
Sintaxis:
parmetros:

Devoluciones:
Funcin:

324

shift_left (aadirO prima,porTES,valor)


unddress yos un puntero a la memoria.
bytes yos un recuento del nmero de bytes para trabajar con
VirginiaLue yos un 0 a 1 que se movi en.
0 o 1 para el bit desplazado
Cambia un poco en una matriz o estructura. La direccin puede ser un identificador de un
vector o una direccin a una estructura (como & datos). Bit 0 del byte ms bajo en la
memoria RAM se trata como el LSB.

Funciones
integradas
Disponibilidad:

Todos los dispositivos

Se requiere:

Nada

Ejemplos:memoria intermedia de bytes [3];


for (i = 0; i <= 24; ++ i) {
// Espera reloj de alta, mientras
que (entrada (PIN_A2)!); shift_left
(buffer, 3, entrada (PIN_A3));
// Espera reloj de baja
mientras que (de entrada (PIN_A2));
}
// Lee 24 bits de A3 pasador, se lee cada bit
// En un bajo a alto en el pin A2

example Archivos:
Ver tambin:

ex_extee.c,9356.do
shift_right (),Gira a la derecha(),girar a la izquierda(),

shift_right ()
Sintaxis:
parmetros:

Devoluciones:
Funcin:

shift_right (direccin,porTES,valor)
unddress yos un puntero a la memoria
bytes yos un recuento del nmero de bytes para trabajar con
VirginiaLue yos un 0 a 1 que se movi en.
0 o 1 para el bit desplazado
Cambia un poco en una matriz o estructura. La direccin puede ser un identificador de un
vector o una direccin a una estructura (como & datos). Bit 0 del byte ms bajo en la
memoria RAM se trata como el LSB.

Disponibilidad:

Todos los dispositivos

Se requiere:

Nada

Ejemplos:// Lee 16 bits desde el pin A1, se lee cada bit


// En un menor a mayor en la
estructura pin A2 {
tiempo de bytes;
byte de comando: 4;
fuente de bytes: 4;} msg;
for (i = 0; i <= 16; ++ i) {while
(entrada (PIN_A2)!); shift_right
(y msg, 3, entrada (PIN_A1));
mientras que (de entrada
(PIN_A2));}
// Esto desplaza 8 bits a cabo PIN_A0, LSB primero.

325

CCS C 10082015

for (i = 0; i <8; ++ i)
output_bit (PIN_A0, shift_right (y de datos, 1,0));

example Archivos:

ex_extee.c,9356.do

Ver tambin:

shift_left (),Gira a la derecha(),girar a la izquierda(),

dormir( )
Syntax: el sueo (modo)
parmetros:

metrooda - Para la mayora de los chips no se utiliza. Comprobar el encabezado dispositivo


para opciones especiales en algunos chips.

Devoluciones:
Funcin:

Indefinido
Emite una instruccin SLEEP. Los detalles son dependientes del dispositivo. Sin embargo,
en general la parte entrar en el modo de alimentacin y el programa de detener la
ejecucin baja hasta que sea despertado por externa especfica
inclusots. Dependiendo de la causa de la llamada de ejecucin puede continuar
despus de la instruccin del sueo. El compilador inserta un sueo () despus de la
ltima instruccin en main ().

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

Nada
DORMIR();

Archivos de ejemplo:
UNlso Ver:

ex_wakup.do

restablecer la CPU ()

sleep_ulpwu ()
Syntax: sleep_ulpwu (hora)
parmetros:

Devoluciones:
Funcin:

326

hora especFIEs cunto tiempo, en nosotros, para cargar el condensador en el pin ultradespertador de baja potencia (por la salida de un alto en PIN_A0).
undefinere
Carga el condensador de despertador ultra bajo de energa en PIN_A0 de microsegundos de
tiempo, y luego pone el PIC a dormir. El PIC ser entonces despertar en una 'parada-enChange' despus de la carga de la tapa est perdido.

Funciones
integradas
Disponibilidad:

el apoyo de potencia ultra baja para despertar en el PIC (ejemplo, PIC12F683)

Se requiere:
Ejemplos:

#Usar retraso
while (true)
{
si (entrada (PIN_A1))
//hacer algo
ms
sleep_ulpwu (10); // Casquillo se le cobrar por 10us,
//Entonces ve a
dormir
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

#Usar retraso

sleep_ulpwu ()
Syntax: sleep_ulpwu (hora)
parmetros:

hora especFIEs cunto tiempo, en nosotros, para cargar el condensador en el pin ultradespertador de baja potencia (por la salida de un alto en PIN_B0).

Devoluciones:
Funcin:

undefinere
Carga el condensador de despertador ultra bajo de energa en PIN_B0 de microsegundos de
tiempo, y luego pone el PIC a dormir. El PIC ser entonces despertar en una 'parada-enChange' despus de la carga de la tapa est perdido.

Disponibilidad:

el apoyo de potencia ultra baja para despertar en el PIC (ejemplo, PIC124F32KA302)

Se requiere:
Ejemplos:

#Usar retraso
while (true)
{
si (entrada (PIN_A1))
//hacer algo
ms
sleep_ulpwu (10); // Casquillo se le cobrar por 10us,
//Entonces ve a
dormir
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

#Usar retraso

327

CCS C 10082015

smtx_read ()
Syntax: value_smt1_read (cual);
Virginialue_smt2_read (cual);
Parmetros: cuales - Especifica que registra SMT para leer. A continuacin se definen se han hecho en el
archivo de cabecera del dispositivo para seleccionar qu registros se leen:
SMT_CAPTURED_PERIOD_REG
SMT_CAPTURED_PULSE_WIDTH_REG
SMT_TMR_REG
SMT_PERIOD_REG

Devoluciones:
Funcin:

32valor de bit
To leer los Registros perodo de captura, captura de ancho de pulso Registros,
Horar Los registros o Perodo registros del mdulo de medicin de seal del temporizador.

Disponibilidad:
Ejemplos:

ONLdispositivos de Y con un mdulo integrado de SMT.


unsigned int32 perodo;
Perodo = smt1_read (SMT_CAPTURED_PERIOD_REG);

Archivos de ejemplo:
UNlso Ver:

Ninguna

smtx_status (),stmx_starta(),smtx_stop (),smtx_update (),smtx_reset_timer


(),SEtup_SMTx (),smtx_write ()

smtx_reset_timer ()
Syntax: smt1_reset_timer ();
smt2_reset_timer ();
parmetros:

Ninguna

Devoluciones:
Funcin:
temporizador.

Nada
To restablecer manualmente el registro del temporizador del mdulo de medicin de seal del

Disponibilidad:
Ejemplos:

ONLdispositivos de Y con un mdulo integrado de SMT.


smt1_reset_timer ();

Archivos de ejemplo:
UNlso Ver:

328

Ninguna

SEtup_smtx (),stmx_start (),smtx_stop (),smtx_update (),smtx_status


(),smtx_read (),smtx_write ()

Funciones
integradas

smtx_start ()
Syntax: smt1_start ();
smt2_start ();
parmetros:

Ninguna

Devoluciones:
Funcin:
datos.

Nada
To tener el mdulo de inicio de la seal de medicin del temporizador (SMT) la adquisicin de

Disponibilidad:
Ejemplos:

ONLdispositivos de Y con un mdulo integrado de SMT.


smt1_start ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

smtx_status (),setup_smtx (),smtx_stop (),smtx_update (),smtx_reset_timer


(),smtx_read (),smtx_write ()

smtx_status ()
Syntax: valor = smt1_status ();
VirginiaLue = smt2_status ();
parmetros:

Ninguna

Devoluciones:
Funcin:

Thel estado del E del mdulo SMT.


To devolver el estado del mdulo de la seal de medicin del temporizador (SMT).

Disponibilidad:
Ejemplos:

ONLdispositivos de Y con un mdulo integrado de SMT.


smt1_status estado = ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_smtx (),stmx_start (),smtx_stop (),smtx_update (),smtx_reset_timer


(),smtx_read (),smtx_write ()

smtx_stop ()
Syntax: smt1_stop ();
smt2_stop ();
parmetros:
Devoluciones:

Ninguna
Nada

329

CCS C 10082015

Funcin:

Configura el mdulo de la seal de medicin del temporizador (SMT).

Disponibilidad:
Ejemplos:

ONLdispositivos de Y con un mdulo integrado de SMT.


smt1_stop ()

Archivos de ejemplo:
UNlso Ver:

Ninguna

smtx_status (),stmx_starta(),SEtup_smtx (),smtx_update (),smtx_reset_timer


(),smtx_read (),smtx_write ()

smtx_write ()
Syntax: smt1_write (cual,valor);
smt2_write (cual,valor);
Parmetros: el que - Especifica el que registra SMT para escribir. A continuacin se definen se han hecho
en el archivo de cabecera del dispositivo para seleccionar qu registros se escriben:
SMT_TMR_REG
SMT_PERIOD_REG
VirginiaLue - El valor de 24 bits para configurar los registros especificados.
Devoluciones:
Funcin:

Nada
To escribir los registros del temporizador o el perodo de Registros de la medicin de la seal
Horar mdulo (SMT)

Disponibilidad:
Ejemplos:

ONLdispositivos de Y con un mdulo integrado de SMT.


smt1_write (SMT_PERIOD_REG, 0x100000000);

Archivos de ejemplo:
UNlso Ver:

Ninguna

smtx_status (),stmx_starta(),SEtup_smtx (), smtx_update (),smtx_reset_timer


(),smtx_read (),setup_smtx ()

smtx_update ()
Syntax: smt1_update (cual);
smt2_update (cual);
Parmetros: cuales - Especifica la captura se registra para actualizar manualmente. A continuacin se
definen se han hecho en el archivo de cabecera del dispositivo para seleccionar qu
registros se actualizan:
SMT_CAPTURED_PERIOD_REG
SMT_CAPTURED_PULSE_WIDTH_REG
Devoluciones:
330

Nada

Funciones
integradas

Funcin:

To actualizar manualmente los Registros perodo de captura o la captura Ancho de Pulso


Registros del mdulo de medicin de seal del temporizador.

Disponibilidad:
Ejemplos:

ONLdispositivos de Y con un mdulo integrado de SMT.


smt1_update (SMT_CAPTURED_PERIOD_REG);

Archivos de ejemplo:
UNlso Ver:

Ninguna

SEtup_smtx (),stmx_start (),smtx_stop (),smtx_status (),smtx_reset_timer


(),smtx_read (),smtx_write ()

spi_data_is_in () spi_data_is_in2 ()
Syntax: resultado = spi_data_is_in ()
resultado =
spi_data_is_in2 ()
parmetros:

Ninguna

Devoluciones:
Funcin:

0 (FALSO) o 1 (TRUE)
Devuelve VERDADERO si los datos se han recibido a travs del SPI.

Disponibilidad:

This funcin slo est disponible en dispositivos con hardware de SPI.

Se requiere:
Ejemplos:

Nada
(! Spi_data_is_in () && entrada
(PIN_B2));
si (spi_data_is_in ())
datos = spi_read ();

Archivos de ejemplo:
UNlso Ver:

Ninguna

spi_read(),spi_writo(),SPI general

spi_init ()
Syntax: spi_init (baudios);
spi_init (corriente, baudios);
Parmetros: Secuencia - Es la corriente de SPI para usar como se define en la corriente = opcin de nombre
en #Utilice SPI. banda- El tipo de banda para inicializar el mdulo SPI. Si FALSO se
desactivar el mdulo SPI, si es cierto que va a activar el mdulo SPI para la tasa banda
especificada en #use SPI.
Devoluciones:

Nada.
331

CCS C 10082015

Funcin:

Inicializa el mdulo SPI para la configuracin especificada en #Utilice SPI.

Disponibilidad:

This funcin slo est disponible en dispositivos con hardware de SPI.

Se requiere:
Ejemplos:

#USO SPI
#use spi (MATER, SPI1, baudios = 1000000, modo = 0, corriente = SPI1_MODE0)
spi_init (SPI1_MODE0, TRUE); // Inicializar y permitir SPI1 a establecer en
#use SPI
spi_init (FALSO); // Desactivar SPI1
spi_init (250000); // inicializar y activar SPI1 a una velocidad de 250 K

Archivos de ejemplo:
UNlso Ver:

Ninguna

#USO SPI, spi_xfer (), spi_xfer_in (), spi_prewrite (), spi_speed ()

spi_prewrite (datos);
Syntax: spi_prewrite (daejrcito de reserva);
spi_prewrite (sTREAM,daejrcito de reserva);
Parmetros: Secuencia - Es la corriente de SPI para usar como se define en la corriente = opcin de nombre en
#Utilice SPI.
datos- La variable o constante para transferir a travs de SPI
Devoluciones:
Funcin:

Nada.
WRItes de datos en el bfer de SPI sin esperar a que la transferencia se complete. Puede ser
utilizado en conjuncin con spi_xfer () sin parmetros para transferir ms de 8 bits para PCM
y el dispositivo de PCH, o ms de 8 bits o 16 bits (opcional) XFER16 para PCD. La funcin es
til cuando se utilizan las rutinas de servicio de interrupcin SSP o ssp2 para PCM y el
dispositivo de PCH, o las rutinas de servicio de interrupcin Spix para el dispositivo PCD.

Disponibilidad:

This funcin slo est disponible en dispositivos con hardware de SPI.

Se requiere:
#USO SPI, y la opcin esclavo se utilizan en #Utilice SPI para PIC configuracin como
dispositivo esclavo SPI
Ejemplos:

spi_preescribir (data_out);

Archivos de ejemplo:
UNlso Ver:

ex_spi_slave.do

#USO SPI,spi_xfer (),spi_xfer_in (), spi_init (), Spi_speed ()

spi_read () spi_read2 ()
Syntax: valor = spi_read ([daejrcito de reserva])
VirginiaLue = spi_read2 ([datos])
parmetros:
Devoluciones:
332

data - parmetro opcional y si se incluye es un entero de 8 bits.


Un int 8 bit

Funciones
integradas

Funcin:

Devolver un valor ledo por el SPI. Si un valor se pasa a la spi_read () los datos se registraron
hacia fuera y se devolvern los datos recibidos. Si no hay datos listos, spi_read () esperar a
que los datos son un esclavo o devolver el ltimo dato de velocidad de reloj en spi_write ().
Si este dispositivo es el maestro entonces o bien hacer un spi_write (datos) seguido de un
spi_read () o hacer un spi_read (datos). Estos dos hacen lo mismo y generar un reloj. Si no
hay datos para enviar slo hacer una spi_read (0) para obtener el reloj.
Si este dispositivo es un esclavo a continuacin, ya sea spi_read llamada () para
esperar a que el reloj y de datos o use_spi_data_is_in () para determinar si los
datos estn listos.

Disponibilidad:

This funcin slo est disponible en dispositivos con hardware de SPI.

Se requiere:
Ejemplos:

Nada
data_in = spi_read (out_data);

Archivos de ejemplo:
UNlso Ver:

ex_spi.do

spi_writo(),,, spi_data_is_in (), SPI general

spi_read_16 () spi_read2_16 () spi_read3_16 ()


spi_read4_16 ()
Syntax: valor = spi_read_16 ([datos]); valor =
spi_read2_16 ([datos]); valor
= spi_read3_16 ([datos]);
valor = spi_read4_16
([datos]);
parmetros:
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:

data - parmetro opcional y si se incluye un int de 16 bits


Un int 16 bit
Devolver un valor ledo por el SPI. Si un valor se pasa a la spi_read_16 () los datos se
registraron hacia fuera y se devolvern los datos recibidos. Si no hay datos listos,
spi_read_16 () esperar a que los datos son un esclavo o devolver el ltimo dato de
velocidad de reloj en spi_write_16 ().
Si este dispositivo es el maestro entonces o bien hacer un spi_write_16 (datos), seguido de un
spi_read_16 ()
or hacer un spi_read_16 (datos). Estos dos hacen lo mismo y generar un reloj. Si no hay
datos para enviar slo hacer una spi_read_16 (0) para obtener el reloj.
Si este dispositivo es un esclavo entonces o bien spi_read_16 llamada () para
esperar a que el reloj y de datos o use_spi_data_is_in () para determinar si los datos
est listo.
This funcin slo est disponible en dispositivos con hardware de SPI.
Nque la opcin SPI_MODE_16B utilizar en funcin setup_spi (), o de que la opcin
XFER16 utilizar en #use SPI (
329

CCS C 10082015

Ejemplos:

330

data_in = spi_read_16 (out_data);

Funciones
integradas
Archivos de ejemplo:
UNlso Ver:

Ninguna

spi_read(), Spi_write (), spi_write_16 (), spi_data_is_in (), SPI general

spi_speed
Syntax: spi_speed (baudios); spi_speed
(sTREAM,baudios);
spi_speed(sTREAM,baudios,re
loj);
Parmetros: Secuencia - Es la corriente de SPI para usar como se define en la corriente = opcin de nombre en
#Utilice SPI.
banda- El tipo de banda para configurar el mdulo SPI
dobloquear- La frecuencia de reloj actual para calcular la
velocidad de banda con. Si no se especifica se utiliza el
valor especificado en #use delay ().
Devoluciones:
Funcin:

Nada.
Establece la velocidad de transmisin del mdulo SPI en el valor especificado.

Disponibilidad:

This funcin slo est disponible en dispositivos con hardware de SPI.

Se requiere:
Ejemplos:

#USO SPI
spi_speed(250000); spi_speed
(SPI1_MODE0, 250000); spi_speed
(SPI1_MODE0, 125000, 8000000);

Archivos de ejemplo:
UNlso Ver:

Ninguna

#USO SPI, spi_xfer (), spi_xfer_in (), spi_prewrite (), spi_init ()

spi_write () spi_write2 ()
Syntax: spi_write ([Espere],valor);
spi_write2 ([Espere],valor);
parmetros:

Devoluciones:
Funcin:

VirginiaLue yoes un entero de 8 bits


Washingtoneso- Un parmetro opcional que especifica si la funcin esperar a que la
transferencia de SPI para completar antes de salir. El valor predeterminado es TRUE si
no se especifica.
Nada
Enva un byte fuera de la interfaz SPI. Esto har que los relojes de 8 a ser generados. Esta
funcin se escribe el valor a la SPI. Al mismo tiempo los datos se registraron hacia fuera de

329

CCS C 10082015
datos tiene una velocidad en y se almacena en una memoria intermedia de recepcin.
spi_read () puede ser usado para leer la memoria intermedia.
Disponibilidad:

330

This funcin slo est disponible en dispositivos con hardware de SPI.

Funciones
integradas

Se requiere:
Ejemplos:

Nada
spi_write (data_out);
data_in = spi_read ();

Archivos de ejemplo:
UNlso Ver:

ex_spi.do

spi_read(),spi_data_is_in (),SPI general,spi_write_16 (),spi_read_16 ()

spi_xfer ()
Syntax: spi_xfer (datos) spi_xfer (secuencia,
los datos) spi_xfer
(secuencia, los datos, los
bits) resultado = spi_xfer
(datos)
resultado = spi_xfer (secuencia, los datos)
resultado = spi_xfer (secuencia, los datos, los bits)
parmetros:

datos yos la variable o constante para transferir a travs de SPI. El pasador utilizado para
transferir datunyoS definida en la DO opcin = alfiler en #use spi. sTREAM yoEs la corriente
de SPI para uso como se define en la opcin STREAM = nombre en #Utilice SPI.
los bits yos Cmo sern transferidos muchos bits de datos.

Devoluciones:
Thlos datos electrnicos suministrados por el SPI. El pasador utilizado para transferir
resultado se define en el DI opcin pin IN =
#USO SPI.
Funcin:

Transfers de datos y lee los datos desde un dispositivo SPI.

Disponibilidad:

Todos los dispositivos con soporte SPI.

Se requiere:
Ejemplos:

#USO SPI
int i = 34;
spi_xfer (i);
// Transfiere el nmero 34 a travs de SPI
int trans = 34, res;
res = spi_xfer (trans);
// Transfiere el nmero 34 a travs de SPI
// Tambin lee el nmero que viene de SPI

Archivos de ejemplo:
UNlso Ver:

Ninguna

#USO SPI

331

CCS C 10082015

SPI_XFER_IN ()
Syntax: valor = spi_xfer_in ();
VirginiaLue = spi_xfer_in (bits);
VirginiaLue = spi_xfer_in (flujo, bits);
parmetros:

sTREAM - es la corriente de SPI para usar como se define en la corriente = opcin de


nombre en #Utilice SPI. los bits - es la forma en que se recibieron muchos bits de datos.

Devoluciones:
Funcin:
primero.

Thlos datos electrnicos suministrados por el SPI


Lee los datos del SPI, sin necesidad de escribir datos en la memoria intermedia de transmisin

Disponibilidad:

This funcin slo est disponible en dispositivos con hardware de SPI.

Se requiere:
#USO SPI, y la opcin esclavo se utilizan en #Utilice SPI para PIC configuracin como
dispositivo esclavo SPI.
Ejemplos:

data_in = spi_xfer_in ();

Archivos de ejemplo:
UNlso Ver:

ex_spi_slave.do

#USO SPI, spi_xfer (), spi_prewrite (), spi_init (), spi_speed ()

sprintf ()
Syntax: sprintf (sTring,csTring,valores...);
porTES = sprintf (sTring,csTring,valores...)
parmetros:

Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

sTring yos una matriz de caracteres.


csTring yos una constante de cadena o un array de caracteres terminada en nulo.
Valores unre una lista de variables separadas por comas. Tenga en cuenta que especifica
el formato no funcionan en las cadenas de banda de memoria RAM.
Bytes es el nmero de bytes escritos en cadena.
This opera como funcin printf (), excepto que la salida se coloca en la cadena especificada.
La cadena de salida se dar por terminado con un nulo. Sin comprobacin se realiza para
garantizar la cadena es lo suficientemente grande para los datos. Ver printf () para obtener
detalles sobre el formato.
Todos los dispositivos.
Nada
Char mystring [20];
mylong larga;
mylong = 1234;
sprintf (mystring, "<% lu>", mylong);
// Mystring tiene ahora:
// <1 2 3 4> \ 0

332

Funciones
integradas
Archivos de ejemplo:
UNlso Ver:

Ninguna

printf ()

sqrt ()
Syntax: resultado = sqrt (valor)
parmetros:

VirginiaLue yoEs un flotador

Devoluciones:
Funcin:

Un flotador
Calcula la raz cuadrada no negativa del valor flotante x. Si el argumento es negativo, el
comportamiento no est definido.
Nota sobre el control de errores:
Si se incluye "errno.h", entonces los errores de dominio y el rango se almacenan en la
variable errno. El usuario puede comprobar el valor en errno para ver si se ha producido un
error e imprimir el error utilizando la funcin perror.
error de dominio se produce en los siguientes casos:
cuadradosRT: cuando el argumento es negativo

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <math.h>
distancia = sqrt (pow ((x1-x2), 2) + pow ((y1-y2), 2));

Archivos de ejemplo:
UNlso Ver:

Ninguna

Ninguna

srand ()
Syntax: srand (norte)
parmetros:

Devoluciones:
Funcin:

norteyos la semilla para una nueva secuencia de nmeros pseudo-aleatorios que sern
devueltos por las posteriores llamadas a rand.
Sin valor.
The srand () funcin utiliza el argumento como una semilla para una nueva secuencia de
nmeros pseudo-aleatorios que sern devueltos por las posteriores llamadas a rand. Si
srand () se llama entonces con misma semilla

333

CCS C 10082015

valor, La secuencia de nmeros aleatorios se repetir. Si rand se llama antes de cualquier


llamada a srand () se han hecho, la misma secuencia se genera como cuando srand () se
llama en primer lugar con un valor de 1 semilla.
Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <stdlib.h>
srand (10);
I = rand
();

Archivos de ejemplo:
UNlso Ver:

Ninguna

rand ()

Funciones de cadena estndar ()


memchr ()
memcmp () strcat ()
strcmp ()
strcoll ()
strcspn ()
stricmp ()
strlen ()
strlwr ()
strncmp ()
strncpy ()
strpbrk ()
strspn ()
strstr ()
strxfrm ()
Syntax:

ptr = strcat (s1,s2)


ptr = strchr (s1,do)
ptr = strrchr (s1,do)
dostrcmp resultado = (s1,s2)
iResult = strncmp (s1,s2,norte)
iResult = stricmp (s1,s2)
ptr = strncpy (s1,s2,norte)
iResult = strcspn (s1,s2)
iResult = strspn (s1,s2)
iResult = strlen (s1)
ptr = strlwr (s1)
ptr = strpbrk (s1,s2)
ptr = strstr (s1,s2)
ptr = strncat (s1,s2, n)
iResult = strcoll (s1,s2)
res = strxfrm (s1,s2,norte)

iResult = memcmp
(m1,m2,norte)
ptr = memchr (m1,do,norte)
ptr = strerror (errnum)

parmetros:
que s1 y s2

Concatenar s2 en s1
Encuentra c en s1 y de retorno y s1 [i]
Lo mismo pero a la inversa buscar
Comparacin de s1 a s2
Comparacin de s1 a s2 (n bytes)
Comparar e ignorar el caso
Copiar hasta n caracteres S2> S1
Conde de los caracteres iniciales en s1 s2 no en
Conde de caracteres iniciales en s1 s2 tambin en
Nmero de caracteres en s1
Convierte una cadena a minsculas
Buscar s1 para comenzar con caracteres tambin en s2
Buscar s2 en s1
Concatena hasta n bytes de Onto s2 s1
Compara s1 a s2, tanto interpretarse segn sea
apropiado para la localizacin actual.
Transforms mximo de n caracteres de s2 y los coloca
en s1, de tal manera que strcmp (S1, S2) dar el
mismo
Comparacin de M1 a M2 (n bytes)
Encuentra en c n primeros caracteres de m1 y vuelta y de
m1 [i] el nmero de error en errnum a una cadena de
Mapaes
mensaje de error. Los parmetros 'errnum' es un
Devuelve
unsigned int
un 8puntero
bits. a la cadena.

s1unres2unre punteros a una matriz de caracteres (o el nombre de una matriz). Tenga en cuenta
MAMY NO ser una constante (como "hola").

334

strchr ()
strerror ()
strncat ()
strrchr ()

Funciones
integradas

norteyos un recuento del nmero mximo de caracteres para operar.


doyoEs un carcter de 8 bits
metro1unremetro2unre punteros a memoria.
Devoluciones:

Funcin:

pTR es una copia de


la iResult puntero s1 es un
entero de 8 bits
resultado es -1 (menor que), 0 (igual) o 1 (mayor que)
res es un nmero entero.
Las funciones estn identificadas anteriormente.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#include <string.h>
Char cadena1 [10], cadena2 [10];
strcpy (cadena1,
"Hola"); strcpy
(cadena2, "no"); strcat
(cadena1, cadena2);
printf ( "La longitud es de% u \ r \ n", strlen (cadena1));
// Imrprimir 8

Archivos de ejemplo:
UNlso Ver:

ex_str.c

strcpy (),strtok ()

strcpy () strcopy ()
Syntax: strcpy (dest,src)
strcopy (dest,src)
parmetros:

Devoluciones:
Funcin:
un 0.
Disponibilidad:
Se requiere:

dest yos un puntero a una matriz de memoria RAM de caracteres.


src mamY ser un puntero a una matriz de memoria RAM de caracteres o puede ser una
cadena constante.
undefinere
Copia una cadena constante o RAM para una cadena de RAM. Las cadenas se terminan con

Todos los dispositivos.


Nada
335

CCS C 10082015

Ejemplos:

char string [10], cadena2 [10];


.
.
.
strcpy (cadena, "Hola all");
strcpy (cadena2, cadena);

Archivos de ejemplo:
UNlso Ver:

ex_str.c

strxxxx ()

strtod ()
Syntax: resultado = strtod (notario pblicotr, y endptr)
parmetros:

nptr unremindptr unre cuerdas

Devoluciones:

resultado es un flotador.
devuelve el valor convertido en consecuencia, si los hay. Si no se pudo realizar la
conversin, se devuelve cero.

Funcin:

Thfuncin de correo strtod convierte la porcin inicial de la cadena a la que apunta a una
representacin nptr flotador. La parte de la cadena despus de la conversin se almacena en el
objeto al que apunta endptr, siempre que endptr no es un puntero nulo. Si nptr est vaca o no
tiene la forma esperada, sin conversin se lleva a cabo y el valor de nptr se almacena en el
objeto apuntado por endptr, siempre endptr no es un puntero nulo.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <stdlib.h>
flotar resultado;
Char str [12] =
"123.45hello"; Char * ptr;
resultado = strtod (str, y
PTR);
// Resultado es 123,45 y PTR es "hola"

Archivos de ejemplo:
UNlso Ver:

Ninguna

strtol (),strtoul ()

strtok ()
Syntax: ptr = strtok (s1,s2)

336

Funciones
integradas

parmetros:
s1unres2unre punteros a una matriz de caracteres (o el nombre de una matriz). Tenga en
cuenta que s1 y s2
MAMY NO ser una constante (como "hola"). s1 puede ser 0 para indicar una operacin de
continuar.
Devoluciones:
Funcin:

ptr puntos a un personaje en s1 o es 0


Encuentra siguiente token en s1 delimitado por un carcter de la cadena s2 separador (que
puede ser diferente de llamada a llamada), y devuelve el puntero a la misma.
Primera llamada se inicia al comienzo de la bsqueda s1 para el primer carcter no
contenida en s2 y devuelve un valor nulo si no hay ninguno se encuentran.
Si no se encuentra ninguno, es el comienzo del primer testigo (valor de retorno). Funcin
busca entonces a partir de ah para un personaje que figura en s2.
Si no se encuentra ninguno, smbolo actual se extiende hasta el final de s1, y las bsquedas
posteriores por un contador volver nula.
Si se encuentra uno, se sobrescribe por '\ 0', que termina token actual. Funcin guarda
puntero al siguiente carcter a partir del cual se iniciar la prxima bsqueda.
Cada llamada posterior, con 0 como primer argumento, comienza a buscar desde el puntero
salvado.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <string.h>
char string [30], trmino [3], *
ptr;
strcpy (cadena, "uno, dos, tres;");
strcpy (plazo ",;");
ptr = strtok (cadena, plazo);
mientras que (PTR! = 0) {
puts
(PTR);
ptr = strtok (0, plazo);
}
//
Imprime:
uno
dos
Tres

Archivos de ejemplo:
UNlso Ver:

ex_str.c

strxxxx (),strcpy ()

337

CCS C 10082015

strtol ()
Syntax: resultado = strtol (notario pblicotr, y endptr,base)
parmetros:

nptr unremindptr unre cuerdas y base yoes un nmero entero

Devoluciones:

resultado es un entero largo firmado.


devuelve el valor convertido en consecuencia, si los hay. Si no se pudo realizar la
conversin, se devuelve cero.

Funcin:

Thfuncin de correo strtol convierte la porcin inicial de la cadena a la que apunta a una
representacin nptr long int firmado en alguna base determinado por el valor de la base. La
parte de la cadena despus de la conversin se almacena en el objeto al que apunta endptr,
siempre que endptr no es un puntero nulo. Si nptr est vaca o no tiene la forma esperada, sin
conversin se lleva a cabo y el valor de nptr se almacena en el objeto apuntado por endptr,
siempre endptr no es un puntero nulo.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <stdlib.h>
firmado resultado a largo;
Char str [9] = "123hello";
Char * ptr; resultado =
strtol (str, y PTR, 10);
// Resultado es 123 y PTR es "hola"

Archivos de ejemplo:
UNlso Ver:

Ninguna

strtod (),strtoul ()

strtoul ()
Syntax: resultado = strtoul (notario pblicotr,endptr,base)

parmetros:

nptr unremindptr unre cuerdas y punteros base yos un entero 2-36.

Devoluciones:

resultado es un entero largo sin signo.


devuelve el valor convertido en consecuencia, si los hay. Si no se pudo realizar la
conversin, se devuelve cero.

Funcin:

338

Thfuncin de correo strtoul convierte la porcin inicial de la cadena a la que apunta a una
representacin nptr long int radix de alguna determinada por el valor de la base. La parte de la
cadena despus de la conversin se almacena en el objeto al que apunta endptr, siempre que
endptr no es un puntero nulo. Si nptr est vaca o no tiene la forma esperada, sin conversin
se lleva a cabo y el valor de nptr se almacena en el objeto apuntado por endptr, siempre
endptr no es un puntero nulo.

Funciones
integradas
Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Stdlib.h debe incluirse


resultado de largo;
Char str [9] = "123hello";
Char * ptr; resultado =
strtoul (str, y PTR, 10);
// Resultado es 123 y PTR es "hola"

Archivos de ejemplo:
UNlso Ver:

Ninguna

strtol (),strtod ()

SOAP ()
Syntax: intercambio (lvalue)
parmetros:

lvalue yoes una variable de bytes

Devoluciones:
Funcin:

undefined - ADVERTENCIA: esta funcin no devuelve el resultado


Intercambia el byte superior con el inferior del byte especificado. Esto es lo mismo que:
porte = (byte << 4) | (Byte >> 4);

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Nada
x = 0x45;
swap (x);
// X ahora es 0x54

Archivos de ejemplo:
UNlso Ver:

Ninguna

Gira a la derecha(),girar a la izquierda()

tolower () toupper ()
Syntax: resultado = tolower (cValue)
resultado = toupper (cValue)
parmetros:

CVALue yoEs un personaje

339

CCS C 10082015

Devoluciones:
Funcin:

Un carcter de 8 bits
Tesfunciones e cambian el caso de las letras en el alfabeto.
MUY BAJOER (X) devolver 'a' .. 'z' para X en 'A' .. 'Z' y todos los dems personajes
son sin cambios. TOUPPER (X) volver 'a' .. 'Z' para X en 'a' .. 'z' y todos los dems
personajes son sin cambios.

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

Nada
interruptor (toupper (getc ())) {
caso 'R': read_cmd (); romper;
caso 'W': WRITE_CMD (); romper;
caso 'Q': hecho = TRUE; romper;
}

Archivos de ejemplo:
UNlso Ver:

ex_str.c

Ninguna

touchpad_getc ()
Syntax: entrada = TOUCHPAD_GETC ();
parmetros:
Devoluciones:
Funcin:

Ninguna
char (nmero de retornos correspondientes ASCII es "entrada" declarada como int)
Activamente espera a que el firmware para indicar que un mdulo de deteccin de predeclarado capacitiva (CSM) o pasador de carga por unidad de tiempo de medicin (CTMU)
est activa, a continuacin, almacena el valor de carcter pre-declarado de que el pin de
"entrada".
Nota: Hasta un alfiler o CSM CTMU es ledo por el firmware como activa, esta instruccin
har que el microcontrolador entre en prdida.

Disponibilidad:
Se requiere:
Ejemplos:

Todos los de PIC con un CSM o CTMU Mdulo


#USO TCTIL (opciones)
// Cuando se activa el pad conectado a PIN_B0, almacenar la letra "A"
#Utilice TCTIL (PIN_B0 = 'A')
void main (void) {char c;
enable_interrupts
(global);

340

Funciones
integradas
c = TOUCHPAD_GETC ();
// Esperar hasta que se detecta uno de los pasadores declarados
// Si no se pulsa PIN_B0, c obtendr el valor "A"
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

#USO DEL TOUCHPAD,touchpad_state ()

touchpad_hit ()
Syntax: valor = TOUCHPAD_HIT ()
parmetros:

Ninguna

Devoluciones:
Funcin:

TRUE o FALSO
Devuelve TRUE si se ha pulsado un mdulo de deteccin capacitiva (CSM) o la tecla de
carga Unidad de Medicin de Tiempo (CTMU). Si es TRUE, entonces una llamada a
touchpad_getc () no har que el programa que esperar a que se presione una tecla.

Disponibilidad:

Todos los de PIC con un CSM o CTMU Mdulo

Se requiere:
Ejemplos:

#USO TCTIL (opciones)


// Cuando se activa el pad conectado a PIN_B0, almacenar la letra "A"
#Utilice TCTIL (PIN_B0 = 'A')
void main (void) {
c carbn;
enable_interrupts (global);
while (true) {
si (TOUCHPAD_HIT ())
// Espera hasta que se pulsa la tecla
de PIN_B0
c = TOUCHPAD_GETC (); // Obtener tecla que se ha pulsado
} // C obtendr el valor "A"
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

#Touchpad Use (),touchpad_state (),touchpad_getc ()

341

CCS C 10082015

touchpad_state ()
Syntax: TOUCHPAD_STATE (estado);
parmetros:

state yos un literal 0, 1, o 2.

Devoluciones:
Funcin:

Ninguna
Establece el estado actual de la pantalla tctil conectado al mdulo de deteccin capacitiva
(CSM). El estado puede ser uno de los tres valores siguientes:
0: Estado normal
1: Calibra, a continuacin, entra en estado normal
2: El modo de prueba, los datos de cada tecla se recogen en la matriz Int16 TOUCHDATA
Nota: Si el estado se establece en 1 mientras se presiona una tecla, el touchpad no
calibra correctamente.

Disponibilidad:

Todos los de PIC con un mdulo CSM

Se requiere:
Ejemplos:

#USO TCTIL (opciones)


#Utilice TCTIL (umbral = 5, PIN_D5 = '5', PIN_B0 = 'C')
void main (void)
{
c carbn;
TOUCHPAD_STATE (1); // Calibra, a continuacin, entra
enable_interrupts estado normal (GLOBAL);
while (1) {
c = TOUCHPAD_GETC ();
// Wilse detecta l espera hasta que uno de los pasadores
declarados
}
// Si no se pulsa PIN_B0, c obtendr el valor "C"
} // Si no se pulsa PIN_D5, c obtendr el valor "5"

Archivos de ejemplo:
UNlso Ver:

Ninguna

#USO DEL TOUCHPAD,touchpad_getc (),touchpad_hit ()

tx_buffer_available ()
Syntax: valor = tx_buffer_available ([sTREAM]);
Parmetros: Secuencia - Parmetro opcional que especifica la corriente se define en #Utilice RS232.
Devoluciones:

Nmero de bytes que todava se pueden poner en memoria intermedia de transmisin

Funcin:
Funcin para determinar el nmero de bytes que todava se pueden poner en memoria
intermedia de transmisin antes de que se
342

Funciones
integradas
overflows. Bfer de transmisin se implementa tiene un buffer circular, as que asegrese
de comprobar para asegurarse de que hay espacio para al menos uno ms de lo que
realmente se necesita.
Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#RS232 USO
# USE_RS232 (UART1, BAUDIO = 9600, TRANSMIT_BUFFER = 50)
void main (void)
{
INT8 conde sin signo = 0;
while (true) {
si (tx_buffer_available ()> 13)
printf ( "/ r / nPosiciones =% 3u", Count ++);
}
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

_USE_RS232 (), VN(),TX_BUFFER_FULL (),RCV_BUFFER_BYTES (),GRAMOET (), Putc ()


,Printf (),SETUP_UART (),PUTC_SEND ()

tx_buffer_bytes ()
Syntax:
parmetros:

VirginiaLue = ([tx_buffer_bytessTREAM]);
sTREAM - Parmetro opcional que especifica la corriente se define en #Utilice RS232.

Devoluciones:
enviado.

Nmero de bytes de memoria intermedia de transmisin que todava tienen que ser

Funcin:
Funcin para determinar el nmero de bytes de memoria intermedia de transmisin que an
necesitan ser enviados.
Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#RS232 USO
#USE_RS232 (UART1, BAUDIO = 9600, TRANSMIT_BUFFER = 50)
void main (void) {
char string [] = "Hola";
yof (tx_buffer_bytes () <= 45)
printf ( "% s", cadena);
}

Archivos de ejemplo:

UNlso Ver:

Ninguna

_USE_RS232 (),RCV_BUFFER_FULL (),TX_BUFFER_FULL (),RCV_BUFFER_BYTES


343

CCS C 10082015
(),GRAMOET (), Putc (),Printf (),SETUP_UART (),PUTC_SEND ()

344

Funciones
integradas

tx_buffer_full ()
Syntax: valor = tx_buffer_full ([stream])
Parmetros: Secuencia - Parmetro opcional que especifica la corriente se define en RS232 #Utilice
Devoluciones:
Funcin:

TRUE si buffer de transmisin est lleno, de lo contrario.


Funcin para determinar si hay espacio en el buffer de transmisin para otro personaje.

Disponibilidad:

Todos los dispositivos

Se requiere:
Ejemplos:

#RS232 USO
#USE_RS232 (UART1, BAUDIO = 9600, TRANSMIT_BUFFER = 50)
void main (void) {
char c;
yof (! tx_buffer_full ())
putc(do);
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

_USE_RS232 (),RCV_BUFFER_FULL (),TX_BUFFER_FULL ().,RCV_BUFFER_BYTES


(),GRAMOETC (), Putc (), Printf (),SETUP_UART ().,PUTC_SEND ()

Virginia_arg ()
Syntax: va_arg (unrgptr,tipo)
Parmetros: argptr yos argumento un puntero especial de tipo va_list
tyEducacin fsica - Este es el tipo de datos como int o carbn.
Devoluciones:

Funcin:
Disponibilidad:
Se requiere:
Ejemplos:

The primera llamada a va_arg despus va_start devolver el valor de los parmetros
despus de la especificada por el ltimo parmetro. Invocaciones sucesivas devolvern los
valores del resto de los argumentos en la serie.
Thfuncin de correo devolver el siguiente argumento cada vez que se llama.
Todos los dispositivos.
#INCLUYE <stdarg.h>
int foo (int num, ...)
{
int suma = 0;
int i;
argptr va_list; // Crear va_start puntero del
argumento especial (argptr, num); // Inicializar
argptr
for (i = 0; i <num; i ++)
suma = suma + va_arg (argptr, int);

345

CCS C 10082015

va_end (argptr); // Fin de la variable suma


de retorno de procesamiento;
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

n/ARGS (),va_end(),va_starta()

Virginia_fin( )
Syntax: va_end (unrgptr)
Parmetros: argptr yos argumento un puntero especial de tipo va_list.
Devoluciones:
Funcin:

Ninguna
Una llamada a la macro terminar el procesamiento variable. Esto facillitate un rendimiento
normal de la funcin cuya lista de argumentos variable fue referido por la expansin de
va_start ().

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <stdarg.h>
int foo (int num, ...)
{
int suma = 0;
int i;
argptr va_list; // Crear va_start puntero del
argumento especial (argptr, num); // Inicializar
argptr
for (i = 0; i <num; i ++)
suma = suma + va_arg (argptr, int);
va_end (argptr); // Fin de la variable suma
de retorno de procesamiento;
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

n/ARGS (),va_start (),va_arg ()

Virginia_comienzo
Syntax: va_start (unrgptr,Virginiariable)
Parmetros: argptr es un puntero argumento especial de tipo va_list
346

Funciones
integradas

Virginiariable - El segundo parmetro para va_start () es el nombre del ltimo parmetro


antes de la lista de argumentos variable.
Devoluciones:
Funcin:

Ninguna
Thfuncin e inicializar el argptr mediante una llamada a la va_start macro ().

Disponibilidad:

Todos los dispositivos.

Se requiere:
Ejemplos:

#INCLUYE <stdarg.h>
int foo (int num, ...)
{
int suma = 0;
int i;
argptr va_list; // Crear va_start puntero del
argumento especial (argptr, num); // Inicializar
argptr
for (i = 0; i <num; i ++)
suma = suma + va_arg (argptr, int);
va_end (argptr); // Fin de la variable suma
de retorno de procesamiento;
}

Archivos de ejemplo:
UNlso Ver:

Ninguna

n/ARGS (),va_start (),va_arg ()

write_bank ()
Syntax: write_bank (banco,deFSET,valor)
parmetros:

Devoluciones:
Funcin:

Disponibilidad:

Se requiere:

banco yos el banco RAM fsica 1-3 (dependiendo del dispositivo)


compensar yos el desplazamiento en la memoria RAM de usuario para ese banco (empieza en
0)
VirginiaLue yos los 8 bits de datos para escribir
undefinere
WRIT a byte de datos en el rea RAM de usuario del banco de memoria especificada. Esta
funcin puede utilizarse en algunos dispositivos donde el acceso completo RAM por variables
de automviles no es eficiente. Por ejemplo, en el ajuste del tamao de puntero a 5 bits de chip
PIC16C57 generar el cdigo de ROM ms eficiente sin embargo variables auto no pueden
estar por encima de 1Fh. En vez de ir a los punteros de 8 bits puede guardar ROM mediante el
uso de esta funcin para escribir en el disco para llegar a los bancos. En este caso el banco
puede ser 1-3 y el desplazamiento puede ser 0-15.
Todos los dispositivos, pero slo es til en las partes de PCB con la memoria sobre 1Fh
y partes PCM con la memoria ms de FFh.
Nada
347

CCS C 10082015

Ejemplos:

i = 0; // Utiliza el banco 1 como un do


tampn RS232 {
c = getc ();
write_bank (1, i ++, c);
} While (c = 0x13!);

Archivos de ejemplo:
UNlso Ver:

ex_psp.do

Vea la seccin de "preguntas y respuestas comunes" para obtener ms informacin.

write_configuration_memory ( )
Syntax: write_configuration_memory ([Desplazamiento], DataPtr, cuente)
parmetros:

DataPtr: Puntero a una o ms bytes


doporte: Un nmero entero de 8 bits
compensar yos un parmetro opcional que especifica el desplazamiento en la memoria de
configuracin para comenzar a escribir para, compensado por defecto en cero si no se utiliza.

Devoluciones:
Funcin:

undefinere
Para dispositivos PIC18-Borra todos los fusibles y escribe contar bytes desde el DataPtr a la
memoria de configuracin.
Para los dispositivos Enhanced16 - borra la memoria y escribir ID de usuario.

Disponibilidad:

Todos los dispositivos PIC18 Flash y Enhanced16

Se requiere:
Ejemplos:

Nada
datos int [6];
write_configuration_memory (datos, 6)

Archivos de ejemplo:
UNlso Ver:

Ninguna

WRITE_PROGRAM_MEMORY (), Descripcin de la configuracin de memoria

write_eeprom ()
Syntax: write_eeprom (direccin,valor)
parmetros:
dispositivo

unddress yoS A (8 bits o 16 bits dependiendo de la parte) int, el rango es dependiente del
VirginiaLue yoes un entero de 8 bits

348

Funciones
integradas
Devoluciones:
Funcin:

undefinere
WRIte un byte en la direccin de la EEPROM de datos especificado. Esta funcin puede tardar
varios milisegundos para ejecutar. Esto slo funciona en dispositivos con EEPROM
incorporados en el ncleo del dispositivo.
Para los dispositivos con memoria EEPROM externa o con una EEPROM separado en el mismo
paquete (como el
12CE671) EX_EXTEE.c ver con CE51X.c, CE61X.c o CE67X.c.
Con el fin de permitir interrupciones que se produzcan durante el uso de la operacin de
escritura, utilice la opcin #DEVICE WRITE_EEPROM = NOINT. Esto permitir que las
interrupciones que se produzcan mientras que las operaciones write_eeprom (sondeo) es el bit
de efectuado para comprobar si ha completado las operaciones de escritura. Se puede utilizar
siempre y cuando no hay operaciones de EEPROM se realizan durante un ISR.

Disponibilidad:

This funcin slo est disponible en dispositivos con soporte de hardware en el chip.

Se requiere:
Ejemplos:

Nada
#define LAST_VOLUME 10 // Localizacin en la
EEPROM
volumen ++;
write_eeprom (LAST_VOLUME, volumen);

Archivos de ejemplo:
UNlso Ver:

ex_intee.c,ex_extee.c,ce51x.do,ce62x.do,ce67x.do

read_eeprom (),write_program_eeprom (), Read_program_eeprom (), data Eeprom general

write_external_memory ()
Syntax: write_external_memory ( aadirO prima,dataptr,Count)
Parmetros: Direccin yoS 16 bits en partes PCM y 32 bits en partes PCH
DataPtr yos un puntero a una o ms bytes
doporte yoes un nmero entero de 8 bits
Devoluciones:
Funcin:

Disponibilidad:
Se requiere:
Ejemplos:

undefinere
WRItes cuentan bytes en la memoria de programa para tratar DataPtr. A diferencia de
write_program_eeprom () y read_program_eeprom () la funcin no se utiliza ningn algoritmo
especial de escritura de EEPROM / FLASH. Los datos se limit a copiar desde el espacio de
direccin de registro para programar el espacio de direcciones de memoria. Esto es til para la
memoria RAM externa o para implementar un algoritmo para flash externo.
ONLdispositivos y PCH.
Nada
for (i = 0x1000; i <= 0x1FFF; i ++)
{valor = read_adc ();
write_external_memory (i, el valor,

349

CCS C 10082015
2);
Delay_ms (1000);
}

350

Funciones
integradas

Archivos de ejemplo:
UNlso Ver:

ex_load.do,LoadeR. C

write_program_eeprom (),erase_programa EEPROM (),Programa general Eeprom

write_extended_ram ()
Syntax: write_extended_ram (pgina, Direccin, datos, cuentan);
Parmetros: pgina - La pgina en la memoria RAM adicional para escribir a
unddress - La direccin de la pgina seleccionada para empezar a escribir a
datos - Puntero a los datos a escribir
doporte - El nmero de bytes para escribir (0 a 32.768)
Devoluciones:
Funcin:

undefinere
To escribir datos en la memoria RAM ampliada de la PIC.

Disponibilidad:

On dispositivos con ms de 30K de memoria RAM.

Se requiere:
Ejemplos:

Nada
INT8 datos sin signo [8] = {} 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08;
write_extended_ram (1,0x0000, datos, 8);

Archivos de ejemplo:
UNlso Ver:

Ninguna

read_extended_ram (), General RAM extendida

write_program_eeprom ()
Syntax: write_program_eeprom (aadirO prima,datos)
parmetros:

Devoluciones:
Funcin:

unddress yos 16 bits para las piezas de PCM y 32 bits en partes PCH, datos yoS 16 bits. El bit
menos significativo siempre debe ser 0 en PCH.
undefinere
WRItes a la zona EEPROM programa especificado.
Ver nuestra write_program_memory () para ms informacin sobre esta funcin.

Disponibilidad:

ONLY los dispositivos que permiten escribe en la memoria del programa.

351

CCS C 10082015

Se requiere:
Ejemplos:

Nada
write_program_eeprom (0,0x2800); // Programa desactiva

Archivos de ejemplo:
UNlso Ver:

ex_load.do,LoadeR. C

read_program_eeprom (), read_eepROM(),write_eeprom (), Write_program_memory (),


mirase_program_eeprom (),Programa general Eeprom

zdc_status ()
Syntax: valor = zcd_status ()
parmetros:

Ninguna

Devoluciones:

Value - el estado del mdulo ZCD. A continuacin se definen se hacen en el


archivo de cabecera del dispositivo y son los siguientes:

ZCD_IS_SINKING
ZCD_IS_SOURCING

Funcin:
To determinar si el mdulo de deteccin de cruce por cero (ZCD) se hunde en la actualidad o en
curso de abastecimiento.
Si el mdulo ZCD est configurado para tener la polaridad de salida invertida, el valor
de retorno se invertir.
Disponibilidad:
Ejemplos:

Todos los dispositivos con un mdulo ZCD.


valor = zcd_status ():

Archivos de ejemplo:
UNlso Ver:

352

Ninguna

SEtup_zcd ()

ESTNDAR do incluir archivos


errno.h
mirrno.h
EDOM
dominio ERANGE
error gama mirrno
mivalor rror

valor de error de
valor de

float.h
float.h
FLT_RADIX:
FLT_MANT_DIG:
FLT_DIG:
FLT_MIN_EXP:
FLT_MIN_10_EXP:
FLT_MAX_EXP:
FLT_MAX_10_EXP:
FLT_MAX:
FLT_EPSILON:
FLT_MIN:
DBL_MANT_DIG:
DBL_DIG:
DBL_MIN_EXP:
DBL_MIN_10_EXP:
DBL_MAX_EXP:
DBL_MAX_10_EXP:
DBL_MAX:
DBL_EPSILON:
DBL_MIN:
LDBL_MANT_DIG:
LDBL_DIG:

Radix de la representacin exponente


Nmero de dgitos de base en el punto flotante significativa
Nmero de dgitos decimales, q, de tal manera que cualquier nmero de coma
flotante con dgitos decimales q se puede redondear en un nmero de coma
flotante con dgitos b p radix y de nuevo sin cambio a los dgitos decimales q.
minimum entero negativo tal que FLT_RADIX elev a que el poder menos 1 es
un nmero de coma flotante normalizado.
minimum entero negativo tal que 10 elevado a la potencia que est en el
rango de nmeros de punto flotante normalizados.
maximum entero negativo tal que FLT_RADIX elev a que el poder menos 1 es
un nmero de coma flotante finito representable.
maximum entero negativo tal que 10 elevado a la potencia est en los
nmeros de punto flotante finitos representables alcance.
maximum representable nmero decimal finita.
Thdiferencia e entre 1 y el menor valor mayor que 1 que es representable en el
tipo de punto flotante dado.
minimum normaliz nmero de coma flotante positiva
Nmero de dgitos de base en el punto flotante significativa
Nmero de dgitos decimales, q, de tal manera que cualquier nmero de coma
flotante con dgitos decimales q se puede redondear en un nmero de coma
flotante con dgitos b p radix y de nuevo sin cambio a los dgitos decimales q.
minimum entero negativo tal que FLT_RADIX elev a la potencia menos 1 es
un nmero de coma flotante normalizado.
minimum entero negativo tal que 10 elevado a la potencia que est en el
rango de nmeros de punto flotante normalizados.
maximum entero negativo tal que FLT_RADIX elev a que el poder menos 1 es
un nmero de coma flotante finito representable.
maximum entero negativo tal que 10 elevado a la potencia que est en el
rango de nmeros de punto flotante finitos representables.
maximum representable nmero decimal finita.
Thdiferencia e entre 1 y el menor valor mayor que 1 que es representable en el
tipo de punto flotante dado.
minimum normaliz nmero de coma flotante positiva.
Nmero de dgitos de base en el punto flotante significativa
Nmero de dgitos decimales, q, de tal manera que cualquier nmero de coma
flotante con dgitos decimales q puede redondearse en un nmero de coma
flotante con dgitos b p radix y la espalda
again sin cambios a los dgitos decimales q.
351

CCS C 10082015

LDBL_MIN_EXP:
LDBL_MIN_10_EXP:
LDBL_MAX_EXP:
LDBL_MAX_10_EXP:
LDBL_MAX:
LDBL_EPSILON:
LDBL_MIN:

minimum entero negativo tal que FLT_RADIX elev a la potencia menos 1 es un


nmero de coma flotante normalizado.
minimum entero negativo tal que 10 elevado a la potencia que est en el
rango de nmeros de punto flotante normalizados.
maximum entero negativo tal que FLT_RADIX elev a que el poder menos 1 es
un nmero de coma flotante finito representable.
maximum entero negativo tal que 10 elevado a la potencia que est en el
rango de nmeros de punto flotante finitos representables.
maximum representable nmero decimal finita.
Thdiferencia e entre 1 y el menor valor mayor que 1 que es representable en el
tipo de punto flotante dado.
nmero de coma flotante positiva normalizada mnimo.

limits.h
Limits.h
CHAR_BIT:
Nmero de bits para el objeto ms pequeo que no es un
bit_field. SCHAR_MIN:
minimuvalor de m para un objeto de tipo firmado
Char SCHAR_MAX:
maximuvalor de m para un objeto de tipo firmado
Char UCHAR_MAX:
maximuvalor de m para un objeto de tipo unsigned
char CHAR_MIN:
minimum valor de un objeto de tipo char (sin firmar)
CHAR_MAX:
maximum valor de un objeto de tipo char (sin firmar)
METROB_LEN_MAX:
maximum nmero de bytes de un carcter multibyte.
SHRT_MIN:
minimuvalor de m para un objeto de tipo short int
SHRT_MAX:
maximuvalor de m para un objeto de tipo short int
USHRT_MAX:
maximuvalor de m para un objeto de tipo unsigned int
corto INT_MIN:
minimuvalor de m para un objeto de tipo int
firmado INT_MAX:
maximuvalor de m para un objeto de tipo int
firmado UINT_MAX:
maximuvalor de m para un objeto de tipo
unsigned int LONG_MIN:
minimuvalor de m para un objeto de tipo
long int firmado LONG_MAX:
maximuvalor de m para un objeto de
tipo long int firmado
ULONG_MAX:
El valor mximo para un objeto de tipo int largo sin signo

locale.h
lugar.marido
locale.h
lconv
SetLocale ()
LOCALCONV ()

(La localizacin no es compatible)


Localizaestructura de la
devuelva null
retornos clocale

setjmp.h
SEtjmp.
h
jmp_buf:
Una matriz utilizado por las siguientes
funciones SEtjmp:
MamRKS un punto de
retorno para el prximo longjmp longjmp:
Saltars
al ltimo punto marcado
352

Estndar C Incluir archivos

stddef.h
stddef.h
ptrdiff_t:
size_t:
baociervo
NULO

The tipo bsico de un puntero


The tipo de operador sizeof (int)
The tipo de la mayor conjunto de caracteres compatible (char) (8 bits)
Un puntero nulo (0)

stdio.h
stdio.h
stderr arroyo El error estndar s (USO RS232 especifica como corriente o el primer RS232 USO)
stdout El flujo de salida estndar (USO RS232 especifica como RS232 flujo ltima USO)
sEl Tin flujo de entrada estndar s (USO RS232 especifica como RS232 flujo ltima USO)

stdlib.h
stdlib.h
div_t tipo de estructura que contiene dos enteros con signo (quot y rem).
ldiv_t tipo de estructura que contiene dos largos firmados (quot y rem
EXIT_FAILURE devuelve 1
EXIT_SUCCESS devuelve 0
RAND_MAXMETROBCUR_MAX- 1
SISTEMA () Devuelve 0 (no se admite)
mulNo se admiten caracteres tibyte
multibyte de caracteres y de
cadena funciones:
METROBLEN () Devuelve la longitud de la cadena. Mbtowc ()
Devuelve 1.
WCTOMB () Devuelve 1. mbstowcs () Devuelve la longitud de
la cadena. WBSTOMBS () Devuelve la longitud de la cadena.
stdlib.h funciones incluyen slo para el cumplimiento de la norma ANSI C.

353

SOFTWARE ACUERDO DE LICENCIA


ACUERDO DE LICENCIA DE SOFTWARE
doarefully leer este Acuerdo antes de abrir este paquete. Con la apertura de
este paquete, usted est de acuerdo en cumplir las siguientes disposiciones.
yof decide no aceptar estas disposiciones, devuelva inmediatamente el
paquete sin abrir para un reembolso.
Alabamal materiales suministrados en el presente documento son propiedad de
Custom Computer Services, Inc. ( "CCS") y estn protegidos por la ley y por los
tratados internacionales de copyright. El Software deber incluir, pero no limitado a,
medios asociados, materiales impresos y documentacin electrnica.
Tstos trminos de licencia son un contrato entre usted ( "Usuario") y CCS para su uso
of Software ( "software"). Por la instalacin, copia, descarga, o el uso de otra forma de la
Software, usted acepta que quedar vinculado por todas las disposiciones de este Acuerdo de
licencia.
1. licensE - CCS no concede al Licenciatario una licencia para usar en una de
las dos opciones siguientes:
1) El software puede ser utilizado nicamente por un solo usuario en mltiples sistemas
informticos;
2) El software puede ser instalado en el sistema de un solo ordenador para su
uso por varios usuarios. El uso de software de los usuarios adicionales o en
una red exige el pago de tasas adicionales.
Licenciatario puede transferir el Software y la licencia a un tercero; y dicho
tercero se llevar a cabo con los trminos de este Acuerdo. Todas las copias
del Software deben ser transferidos a la tercera parte o destruidos. La
notificacin por escrito debe ser enviada a la CAC para que la transferencia sea
vlida.
2. APPPublica- SOFTWARE - Tse de este software y programas derivados
creado por la licencia deber ser identificado como aplicaciones de software, no
estn sujetos a este Acuerdo. Derechos de autor no se pueden asociar a los
programas derivados.
3. ORDENY - CCS garantiza que los soportes estn libres de defectos de material
y mano de obra, y que el Software esencialmente cumpla con la documentacin
relacionada por un perodo de treinta (30) das despus de la fecha de compra.
CCS no garantiza que el Software estar libre de errores o que cumplan con
sus requisitos especficos. Si se ha producido una violacin de la garanta, CCS
le reembolsar el precio de compra o sustitucin de Software sin el defecto.

355

4. LIMICIN DE RESPONSABILIDAD Y EXCLUSIN DE GARANTAS - CCS y


sus proveedores renuncian a cualquier garanta expresa (que no sean la
garanta

356

CCS C 10082015

contenida en el presente documento en la seccin 3), todas las garantas


implcitas, incluyendo, pero sin limitarse a, las garantas implcitas de
comerciabilidad, calidad satisfactoria, y de aptitud para un propsito en
particular, en relacin con el Software.
norteya sea CCS, ni sus proveedores, sern responsables de los daos
personales o daos incidentales, especiales, indirectos o consecuentes de
ningn tipo, incluyendo, sin limitacin, daos por prdida de beneficios, prdida
de datos, interrupcin del negocio, o cualquier otro perjuicio comercial o las
prdidas, que surja de o relacionada con el uso o la imposibilidad de uso del
Software.
Licenciatario es responsable de determinar si el software es adecuado para
UNplicaciones.
1994-2015 Custom Computer Services, Inc.
UNDERECHOS LL reservados a nivel
mundial PO BOX 2452
ARROYOCAMPO, WI 53008
U.S.A.

357

También podría gustarte