00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #include <signal.h>
00011 #include <korebot/korebot.h>
00012
00013 static int quitReq = 0;
00014
00015
00019 static void ctrlc_handler( int sig )
00020 {
00021 quitReq = 1;
00022 }
00023
00024
00027 int quit( int argc , char * argv[] , void * data)
00028 {
00029 quitReq = 1;
00030 }
00031
00032
00033
00034
00035
00036
00037
00044 int configio(int argc, char * argv[], void * data)
00045 {
00046
00047 kb_gpio_function(atoi(argv[1]),0);
00048
00049
00050 if(atoi(argv[2]))
00051 kb_gpio_dir(atoi(argv[1]),0);
00052
00053
00054 else
00055 kb_gpio_dir(atoi(argv[1]),1);
00056 }
00057
00058
00061 int resetio( int argc, char * argv[], void * data)
00062 {
00063 kb_gpio_clear(atoi(argv[1]));
00064
00065 }
00066
00067
00068
00069
00070
00073 int setio( int argc, char * argv[], void * data)
00074 {
00075
00076 kb_gpio_set(atoi(argv[1]));
00077
00078 }
00079
00080
00083 int readio( int argc, char * argv[], void * data)
00084 {
00085
00086 int rc;
00087
00088 rc = kb_gpio_get(atoi(argv[1]));
00089
00090 if(rc < 0)
00091 printf("wrong io or not in input mode\r\n");
00092 else
00093 printf("read io %d: %d\r\n",atoi(argv[1]),rc);
00094
00095 }
00096
00097
00100 int pwm_on( int argc, char * argv[], void * data)
00101 {
00102
00103 int rc;
00104
00105 rc = kb_pwm_activate(atoi(argv[1]));
00106
00107 if(rc != 0)
00108 printf("wrong pwm\r\n");
00109 else;
00110
00111
00112 }
00113
00114
00117 int pwm_off( int argc, char * argv[], void * data)
00118 {
00119
00120 int rc;
00121
00122 rc = kb_pwm_desactivate(atoi(argv[1]));
00123
00124 if(rc != 0)
00125 printf("wrong pwm\r\n");
00126 else;
00127
00128
00129 }
00130
00131
00134 int pwm_ratio( int argc, char * argv[], void * data)
00135 {
00136
00137 int rc;
00138
00139 rc = kb_pwm_duty(atoi(argv[1]), 0 , atoi(argv[2]));
00140
00141 if(rc != 0)
00142 printf("wrong pwm\r\n");
00143 else;
00144
00145
00146 }
00147
00148
00151 int pwm_freq( int argc, char * argv[], void * data)
00152 {
00153
00154 int rc;
00155
00156 rc = kb_pwm_period(atoi(argv[1]), atoi(argv[2]));
00157
00158 if(rc != 0)
00159 printf("wrong pwm\r\n");
00160 else;
00161
00162 }
00163
00164
00167 int pwm_config( int argc, char * argv[], void * data)
00168 {
00169
00170 int rc;
00171
00172 rc = kb_pwm_config(atoi(argv[1]), atoi(argv[2]) , atoi(argv[3]));
00173
00174 if(rc != 0)
00175 printf("wrong pwm\r\n");
00176 else;
00177
00178
00179 }
00180
00181
00182
00183 int help( int argc , char * argv[] , void * data);
00184
00188 static kb_command_t cmds[] = {
00189 { "quit" , 0 , 0 , quit } ,
00190 { "exit" , 0 , 0 , quit } ,
00191 { "bye" , 0 , 0 , quit } ,
00192 { "readio" , 1 , 1 , readio },
00193 { "setio" , 1 , 1 , setio },
00194 { "cleario" , 1 , 1 , resetio },
00195 { "configio" , 2 , 2 , configio },
00196 { "pwm_on" , 1 , 1 , pwm_on },
00197 { "pwm_off" , 1 , 1 , pwm_off },
00198 { "pwm_ratio" , 2 , 2 , pwm_ratio},
00199 { "pwm_freq" , 2 , 2 , pwm_freq },
00200 { "pwm_config" , 3 , 3 , pwm_config },
00201 { "help" , 0 , 0 , help } ,
00202 { NULL , 0 , 0 , NULL }
00203 };
00204
00205
00208 int help( int argc , char * argv[] , void * data)
00209 {
00210 kb_command_t * scan = cmds;
00211 while(scan->name != NULL)
00212 {
00213 printf("%s\r\n",scan->name);
00214 scan++;
00215 }
00216 return 0;
00217 }
00218
00219
00223 static char buf[1024];
00224
00225 int main( int argc , char * argv[] )
00226 {
00227 int rc,veri,io;
00228
00229
00230 kb_set_debug_level(2);
00231
00232 if((rc = kb_init( argc , argv )) < 0 )
00233 return 1;
00234
00235 signal( SIGINT , ctrlc_handler );
00236
00237 printf("K-Team KoreBase Test Program\r\n");
00238
00239
00240 kb_pwm_init();
00241
00242 io = 58;
00243 while(io < 74)
00244 {
00245
00246 kb_gpio_function(io,0);
00247
00248
00249 kb_gpio_dir(io,0);
00250 io++;
00251 }
00252
00253 kb_pwm_activate(0);
00254 kb_pwm_duty(0, 0 , 20);
00255 kb_pwm_period(0, 100);
00256
00257
00258 kb_pwm_activate(1);
00259 kb_pwm_duty(1, 0 , 180);
00260 kb_pwm_period(1, 240);
00261
00262
00263 if(rc != 0)
00264 printf("wrong pwm\r\n");
00265 else;
00266
00267
00268
00269
00270
00271 while (!quitReq) {
00272 printf("\n> ");
00273
00274
00275
00276 io = 58;
00277 while(io < 74)
00278 {
00279 kb_gpio_set(io);
00280 io+=2;
00281 }
00282 io = 59;
00283 while(io < 74)
00284 {
00285 kb_gpio_clear(io);
00286 io+=2;
00287 }
00288
00289
00290 usleep(20000);
00291
00292 io = 58;
00293 while(io < 74)
00294 {
00295 kb_gpio_clear(io);
00296 io+=2;
00297 }
00298 io = 59;
00299 while(io < 74)
00300 {
00301 kb_gpio_set(io);
00302 io+=2;
00303 }
00304
00305
00306 usleep(20000);
00307
00308 }
00309
00310 }