Example Applications For The C166 Family Using The Keil C166 Compiler

 
   
 

These programs can be downloaded from this website free of charge. They are written for the Keil C166 v4.xx compiler using the uVISION2 environment. They make use of the multiple target capability of uVISION2 to allow you to choose ready-configured versions of the programs to suit common development boards.

If you download the FLASH programming support kit, you will be able to automatically blow the programs into the FLASH ROM on your suitably prepared development board.

 
 

Here are the currently available example programs:

ACDRIVE.167
Simple three phase induction motor drive for C167/ST10. This is a
small version that does not use the PEC. Hence the PWM duty ratios are
limited to 4-96%.

Note: We have another version which will allow 0.4 - 99.6% duty ratios, using
the PEC to reload the PWM registers. It is used in a commercially available
drive.

CAN examples from the Hitex training course.
This is intended to run with our 167IO training board.

SERCAN:
CAN to RS232 bridge program

CANB:
Bounces back a CAN message under a different ID useful for getting your first network going!

CANINT:
How to use the CAN interrupt with the Tasking compiler

CANINT.KE:
How to use the CAN interrupt with the Keil compiler

ANGLE:
Angle-based fuel injection example using the CAPCOM unit

CAP32:
How to make a 32-bit capture with the CAPCOM unit

PERIOD:
How to make a period measurement using the CAPCOM unit

FUEL:
Time-based 12 cylinder sequential fuel injection using the CAPCOM unit

CAPCOM6:
PWM generation with the C164CI's CAPCOM6


MULTUART:
CAPCOM based UART for C167

STDUART
T3 based UART for C167

SEARCH:
An optimised table search in C for C167

PEC:
Example of how to use the PEC to buffer ADC readings
Example of using ADC inject mode with PEC

GPT1:
Using GPT1 to act as a quad encoder input
An X-Y trackerball input
PWM generation
DR measurement
Frequency measurement
Shaft encoder input for PID
Timebase generation

GPT2:
Simulating a PLL/flywheel function using T5 & T6
Performing automatic baudrate detection to 115.2kbaud

CAPCOM:
16 and 32-bit input captures using the CAPCOM unit
Generating a fixed period interrupt using the compare modes
Simple sequential fuel injection example, plus angle-domain version that uses the 167 how it was originally intended...

CAPCOM6:
Example of using the CAPCOM6 to produce centre aligned PWM with control over both edges. (C164CI only)

ENCODER:
Example of using the C164's incremental encoder on GPT1

PWM:
Variable frequency sine wave generators using PWM module and CAPCOM
Very simple PWM using CAPCOM unit
A program which plays the German national anthem on PWM channel 0

EXAMPLE.167:
Example program for TUS16x-LITE (HITOP debugger) tutorial document for starter kits

SIMPLE:
A very simple program with a periodic interrupt on T3

SSC:
Example of master, rx and tx using C167 synchronous port (SSC).
Example of SPI on the SSC (From Siemens USA)

BOOT:
Special C programming techniques required to build programs that are split across a boot EPROM and larger application FLASH.

LINKFILE.ROM:
A typical linker input file for a HLARGE/MEDIUM/SMALL model programs, running without the monitor, straight from FLASH.

LINKFILE.MON:
Linker files for HLARGE and SMALL model programs running under monitor. See HLARGE.LIN and SMALL.LIN

HARDTRAP:
A classA and classB trap handler example in assembler

EX0INT:
Example of using C164CI external fast interrupt pins

OUTLINE:
Outline program intended as a starting point for user's own Keil C166 projects

OUTLINE.TAS:
Minimal TASKING C166 project

PROJECT:
Basic files required for any Keil C166 project

DAVE:
Outline program intended as a starting point for user's own projects that are based on the Dave tool

PID:
Simple closed loop proportional-integral-derivative controller for a DC motor with speed feedback

CRC32:
32-bit CRC routines

DPPUSE:
Example of using the Keil DPPUSE control to get 32k near areas

I2C:
Bit-twiddling I2C routines for any two port pins

SK161PI:
Example program for SK161PI kit

XRAMKEIL:
How to put variables into the XRAM with the Keil compiler

DIZZY:
Converts analog channel reading linearly to a frequency output to simulate an automotive distributor.

 
  Download the examples.....