View Single Post
  #15   Spotlight this post!  
Unread 20-12-2003, 03:29
randomperson's Avatar
randomperson randomperson is offline
Assembler Freak
#0904
Team Role: College Student
 
Join Date: Dec 2002
Rookie Year: 2003
Location: Wyoming,MI
Posts: 100
randomperson is an unknown quantity at this point
Send a message via AIM to randomperson Send a message via MSN to randomperson
Re: Autonomous Library!

I'm also working on a copycat type program as well for my team... we used one similar to copycat except i used an external timer to make it work. Also I wasn't aware of copycats existance before I wrote it either... yay me.

Anyways... I won't have the chance to touch our Edubot until Sunday, and I have been working on some routines, and in ifi_picdefs.h the following says:

Code:
extern volatile near unsigned char       PIE2;
extern volatile near struct {
  unsigned CCP2IE:1;
  unsigned TMR3IE:1;
  unsigned LVDIE:1;     /* Reserved - Do not use */
  unsigned BCLIE:1;     /* Reserved - Do not use */
  unsigned EEIE:1;      /* Reserved - Do not use */
  unsigned :1;
  unsigned CMIE:1;
} PIE2bits;
extern volatile near unsigned char       PIR2;
extern volatile near struct {
  unsigned CCP2IF:1;
  unsigned TMR3IF:1;
  unsigned LVDIF:1;     /* Reserved - Do not use */
  unsigned BCLIF:1;     /* Reserved - Do not use */
  unsigned EEIF:1;      /* Reserved - Do not use */
  unsigned :1;
  unsigned CMIF:1;
} PIR2bits;
Where EEIF is "Write operation complete -- must be cleared by software" and EEIE is "Enable Write Operation Interrupt bit". Both are marked reserved.

So by this I'm assuming that:

We cant clear the bit that means the write operation is complete either? (EEIF)

We cant use interrupts to tell when its finished doing the write? (EEIE)

Or am I reading this wrong and theres something I'm missing... because as noted in the PIC documentation, a EEPROM write operation can take up to 4ms to complete. This would mean that we can only write a byte So anyone know about this?
__________________
main() {
srandom(time(0));
while(1) {
int pid=random()%30000;
if (pid>1 && pid!=getpid()){
kill(pid, random()&1 ? SIGSTOP : SIGBUS);
sleep(10); }}}

Visit my completely useless website! http://randomperson.cjb.net