Electronic Projects, forums and more.

Go Back   Electronic Circuits Projects Diagrams Free > Electronics Categories > Micro Controllers


Micro Controllers Discuss all aspects of micro controllers - building them, coding them, etc. All controllers are welcome - PIC, BASIC, Z8 Encore!, etc.

Reply
 
Tools
Old 8th January 2009, 07:10 AM   #106
Default

You have selected a 8 pin chip and so it doesn't have portb. Try changing the chip to something like a 16F88.

Mike.

Last edited by Pommie; 8th January 2009 at 07:10 AM.
Pommie is online now  
Old 8th January 2009, 07:11 AM   #107
Default

Quote:
Originally Posted by killer skittle View Post
Its probably a simple fix, but i am kinda new to it
Did you remember to put #include <system.h> as the first line of your program?


Quote:
Ohh and NICE website!
Thank you.
__________________
=========================
Futz's Microcontrollers & Robotics
=========================
futz is offline  
Old 8th January 2009, 07:12 AM   #108
Default

Quote:
Originally Posted by Pommie View Post
You have selected a 8 pin chip and so it doesn't have portb. Try changing the chip to something like a 16F88.

Mike.
Hahahaha! I didn't think of that. That would definitely do it.
__________________
=========================
Futz's Microcontrollers & Robotics
=========================
futz is offline  
Old 8th January 2009, 07:19 AM   #109
Default

Quote:
Originally Posted by Pommie View Post
You have selected a 8 pin chip and so it doesn't have portb. Try changing the chip to something like a 16F88.

Mike.
did that still no luck

Pic might be too big just go to my photobucket:
KILLERSKITTLE - Photobucket - Video and Image Hosting
page first pic, i need to get to bed its 3 in the morning were im at! i will chack tomorrow and do so more SEARCHING!
thx for the help guys!
killer skittle is offline  
Old 8th January 2009, 07:22 AM   #110
Default

Quote:
Originally Posted by futz View Post
Hahahaha! I didn't think of that. That would definitely do it.
It said it was a success but the HEX is tiny
Code:
:020000040000FA
:0400000004EF00F019
:040008000300FED71C
:020000040030CA
:03000100220E0EBE
:02000500018177
:060008000FC00FE00F40E5
:00000001FF
is it supposed to be that small?


P.S. Can you give thanks on this forum?

Last edited by killer skittle; 8th January 2009 at 07:24 AM.
killer skittle is offline  
Old 8th January 2009, 07:26 AM   #111
Default

Quote:
Originally Posted by killer skittle View Post
It said it was a success but the HEX is tiny
Code:
:020000040000FA
:0400000004EF00F019
:040008000300FED71C
:020000040030CA
:03000100220E0EBE
:02000500018177
:060008000FC00FE00F40E5
:00000001FF
is it supposed to be that small?
Maybe. Depends what you're doing. Test it and see.


Quote:
P.S. Can you give thanks on this forum?
You just did? There's a thing called Add To Reputation at lower left of all posts, if that's what you mean.
__________________
=========================
Futz's Microcontrollers & Robotics
=========================
futz is offline  
Old 8th January 2009, 07:28 AM   #112
Default

Quote:
Originally Posted by futz View Post
Maybe. Depends what you're doing. Test it and see.



You just did? There's a thing called Add To Reputation at lower left of all posts, if that's what you mean.
Ya i found it
THX again! i will test it this weekend and put a post in here!
killer skittle is offline  
Old 8th January 2009, 07:31 AM   #113
Default

Quote:
Originally Posted by killer skittle View Post
It said it was a success but the HEX is tiny
Code:
:020000040000FA
:0400000004EF00F019
:040008000300FED71C
:020000040030CA
:03000100220E0EBE
:02000500018177
:060008000FC00FE00F40E5
:00000001FF
is it supposed to be that small?
Probably, why not try running it? You can select the simulator (under debugger) and single step/run the code. Set a breakpoint in the ISR and use the stopwatch to see how often it interrupts.

Mike.
Pommie is online now  
Old 8th January 2009, 09:40 PM   #114
Default

YA, its a NO GO, can someone, please convert it to hex for me PLEASE?
killer skittle is offline  
Old 8th January 2009, 09:42 PM   #115
Default

Quote:
Originally Posted by killer skittle View Post
YA, its a NO GO, can someone, please convert it to hex for me PLEASE?
You'll have to post your source code. Use Code tags by clicking on the # icon just before pasting.
__________________
=========================
Futz's Microcontrollers & Robotics
=========================
futz is offline  
Old 8th January 2009, 09:49 PM   #116
Default

Code:
/********************************************************************
 *                                                                  *
 *  Project: 12F683 Test v1                                         *
 *   Source: 12F683_Test_v1.c                                       *
 *   Author: Mike McLaren, K8LH                                     *
 *     Date: 19-Jun-08                                              *
 *  Revised: 25-Jun-08                                              *
 *                                                                  *
 *  Charlieplexed 20 LED Demo with 32 PWM levels per LED            *
 *                                                                  *
 *                                                                  *
 *      IDE: MPLAB 8.01 (tabs = 4)                                  *
 *     Lang: SourceBoost BoostC v6.87, Lite/Free version            *
 *                                                                  *
 *                                                                  *
 ********************************************************************/

#include <system.h>

#pragma DATA _CONFIG, _FCMEN_OFF&_IESO_OFF&_MCLRE_OFF&_WDT_OFF&_INTOSCIO

#pragma CLOCK_FREQ 8000000      //

//--< function prototypes >------------------------------------------
//--< type definitions >---------------------------------------------
//--< variables >----------------------------------------------------

unsigned char led[20];          // led matrix, pwm values 0..31

unsigned char shadow = 0;       // isr, trisio shadow register
unsigned char colpos = 1;       // isr, gpio column ring counter bit
unsigned char dcy = 15;         // isr, duty cycle counter, 0..31
unsigned char dc0 = 0;          // isr, row 0 (gp0) pwm value, 0..31
unsigned char dc1 = 0;          // isr, row 1 (gp1) pwm value, 0..31
unsigned char dc2 = 0;          // isr, row 2 (gp2) pwm value, 0..31
unsigned char dc3 = 0;          // isr, row 3 (gp4) pwm value, 0..31

unsigned char addr = (unsigned char) &led;

//--< defines >------------------------------------------------------

#define end_of_period dcy.5     // isr, end of 32 pwm steps
#define end_of_cycle colpos.6   // isr, end of 5 column update cycle

//--< main >---------------------------------------------------------

void main()
{ 
  osccon = 0b01110000;          // set 8 MHz INTOSC
  while(!osccon.HTS);           // wait 'til oscillator stable
  cmcon0 = 7;                   // comparator off, digital I/O
  ansel = 0;                    // a2d module off, digital I/O
  trisio = 0b00111111;          // set all pins to inputs
  gpio = 0;                     // set all output latches to '0'

//  setup 100 usec Timer 2 interrupts (8 MHz clock)

  pir1 = 0;                     // clear peripheral interrupt flags
  pie1 = 0;                     // clear peripheral interrupt enables
  pie1.TMR2IE = 1;              // set Timer 2 interrupt enable bit
  tmr2 = 0;                     // clear Timer 2 register
  t2con = 0b00000100;           // '0-------' unimplemented bit
                                // '-0000---' TOUTPS<3:0>, postscale 1
                                // '-----1--' TMR2ON, turn Timer 2 on
                                // '------00' T2CKPS<1:0>, prescale 1
  pr2 = 200-1;                  // 200 x 500-nsec 'ticks' = 100 usecs
  intcon = 0b11000000;          // '1-------' GIE, enable global ints
                                // '-1------' PEIE, enable peripheral ints
                                // '--0-----' T0IE, TMR0 ints disabled
                                // '---0----' INTE, off
                                // '----0---' GPIE, IOC disabled
                                // '-----000' T0IF/INTF/GPIF flags
//
//  simple led interface to pwm driver, duty cycle values of 0..31
//

  led[0] = led[19] = 1;         //
  led[1] = led[18] = 1;         //
  led[2] = led[17] = 4;         //
  led[3] = led[16] = 0;         //
  led[4] = led[15] = 0;         //
  led[5] = led[14] = 1;         //
  led[6] = led[13] = 1;         //
  led[7] = led[12] = 0;         //
  led[8] = led[11] = 1;         //
  led[9] = led[10] = 1;         //

  while(1)                      //
  {
  }
}

/********************************************************************/
/*  interrupt service routine                                       */
/********************************************************************/
/*                                                                  */
/*  100 usec Timer2 interrupts, 32 interrupts/column (3.2 msecs)    */
/*  for 32 pwm brightness levels. 160 interrupts (16 msecs) for a   */
/*  complete 5 column update cycle (62.5 Hz refresh rate).          */
/*                                                                  */
/*  led array duty cycle parameter values of 0..31 produce actual   */
/*  duty cycles of 0% to 20% per LED in 0.625% (100 usec) steps.    */
/*                                                                  */
/*  57 to 84 cycles or approximately 42% "overhead" (8 MHz clock)   */
/*                                                                  */
/********************************************************************/
void interrupt()
{ 
  if(dc0 == dcy)            // if row 0 duty cycle match
    shadow.0 = 0;           //   clear shadow bit (gp0)
  if(dc1 == dcy)            // if row 1 duty cycle match
    shadow.1 = 0;           //   clear shadow bit (gp1)
  if(dc2 == dcy)            // if row 2 duty cycle match
    shadow.2 = 0;           //   clear shadow bit (gp2)
  if(dc3 == dcy)            // if row 3 duty cycle match
    shadow.4 = 0;           //   clear shadow bit (gp4)
  dcy++;                    // increment duty cycle counter
  asm
  { movf    _colpos,W       //
    andwf   _shadow,W       // is the float bit required?
    btfss   _status,Z       // no, skip, else
    iorlw   0b00100000      // set the 'float' bit
    iorwf   _shadow,W       // pick up led bits
    iorwf   _colpos,W       // pick up column bit
    xorlw   0b00111111      // invert all
    movwf   _trisio         // update the column LEDs
  }

  if(end_of_period)         // if all 32 pwm steps complete
  { dcy = 0;                // reset duty cycle counter
    asm
    { bcf     _status,C     // shift column bit mask
      rlf     _colpos,F     //
      btfsc   _colpos,3     // if gp3 bit position
      rlf     _colpos,F     // shift to gp4 bit position
    }
    if(end_of_cycle)        // if all 5 columns have been updated
    { colpos = 1;           // reset colpos bit to column 0
      asm                   // reset led[] array address pointer
      { movlw   _led        //
        movwf   _addr       // addr = (unsigned char) &led
      }
    }
    shadow = 0b00010111;    // setup shadow (all row bits "on")
    gpio = colpos;          // setup output latch, only 1 bit high
    fsr = addr;             // setup new column pwm work variables
    dc0 = indf;             // row 0 (gp0) pwm value, 0..31
    fsr++;                  //
    dc1 = indf;             // row 1 (gp1) pwm value, 0..31
    fsr++;                  //
    dc2 = indf;             // row 2 (gp2) pwm value, 0..31
    fsr++;                  //
    dc3 = indf;             // row 3 (gp4) pwm value, 0..31
    addr = fsr + 1;         // save array address
  }
}
killer skittle is offline  
Old 8th January 2009, 09:52 PM   #117
Default

Quote:
Originally Posted by killer skittle View Post
Code:
/********************************************************************
944 bytes
skittle.zip
__________________
=========================
Futz's Microcontrollers & Robotics
=========================

Last edited by futz; 8th January 2009 at 10:03 PM.
futz is offline  
Old 8th January 2009, 10:12 PM   #118
Default

YOUR A GOD!!! thank you!
killer skittle is offline  
Old 8th January 2009, 10:16 PM   #119
Default

Quote:
Originally Posted by killer skittle View Post
YOUR A GOD!!! thank you!
Don't be too sure. I might be a lowly worm. I didn't test it.
__________________
=========================
Futz's Microcontrollers & Robotics
=========================
futz is offline  
Old 9th January 2009, 01:31 PM   #120
Default

I'm sorry Gentlemen. I just didn't think to post the hex files...

Mike
Mike, K8LH is offline  
Reply

Tags
boostc, charlieplexed, pwm

Thread Tools
Display Modes


Similar
Title Starter Forum Replies Latest
BoostC question.. AddressOf Mike, K8LH Micro Controllers 8 25th June 2008 12:20 AM
LCD degree symbol with sprintf (BoostC) futz Micro Controllers 29 5th June 2008 05:19 AM
math.h and lib for BoostC? futz Micro Controllers 3 31st March 2008 06:29 AM
Charlieplexed code segment for the Cricket Thermostat William At MyBlueRoom Micro Controllers 2 14th March 2006 05:12 PM
My PIC Projects Site NEW (includes 2 Charlieplexed Display) William At MyBlueRoom Electronic Projects Design/Ideas/Reviews 0 28th February 2006 02:31 PM



All times are GMT. The time now is 05:58 AM.


Electronic Circuits  |  Learning Electronics
eXTReMe Tracker