[En-Nut-Discussion] Need help: interrupt resets device.
    Dmitry Beklemishev 
    dbeklemishev at csa.kz
       
    Wed Apr  4 07:05:07 CEST 2007
    
    
  
Good day!
I have Ethernut 2.1 board and Nut/OS v.4.2.1.
The problem is that INTERRUPT3 resets device when occurs. The code is below.
 
static void irqhandler(void *arg)
{
// Reset occurs even with empty handler
}
 
int main(void)
{
  TCPSOCKET *sock;
  FILE *stream;
  u_long baud = 115200;
  #if defined(USE_EEPROM)
  static u_char _data;
  #endif
  #if defined(USE_EEPROM)
  NutNvMemLoad(EEPROMADDR,&_data,1);
  setout(_data);
  #endif
 
  ADCInit();
  ADCSetPrescale(ADC_PRESCALE_DIV64);     
//  ADCSetRef(AVCC); 
  ADCSetRef(INTERNAL_256); 
  ADCSetMode(SINGLE_CONVERSION); 
 
  NutRegisterDevice(&DEV_DEBUG, 0, 0);
  NutRegisterDevice(&DEV_ETHER, 0x8300, 5);
 
  freopen(DEV_DEBUG_NAME, "w", stdout);
  _ioctl(_fileno(stdout), UART_SETSPEED, &baud);
 
  NutNetLoadConfig(DEV_ETHER_NAME);
  NutNetIfConfig(DEV_ETHER_NAME, confnet.cdn_mac, confnet.cdn_ip_addr,
confnet.cdn_ip_mask);
 
  NutWatchDogStart(WDTIMER,0);
  NutThreadCreate("WDThread", WDThread, 0, 512);
 
  NutRegisterIrqHandler(&sig_INTERRUPT3, irqhandler, 0);
  NutIrqSetPriority(&sig_INTERRUPT3, 0);
  NutIrqEnable(&sig_INTERRUPT3);
 
  for (;;) 
  {
    if ((sock = NutTcpCreateSocket()) != 0) 
    {
      if (NutTcpAccept(sock, INPORT) == 0) 
      {
        if ((stream = _fdopen((int) sock, "r+b")) != 0) 
        {
          ProcessRequests(stream);
          fclose(stream);
        } else puts("Assigning a stream failed");
      }
      NutTcpCloseSocket(sock);
    }
  }
}
 
Compiler used is avr-gcc.
 
Can anybody help me?
Sincerely yours,
Dmitry.
 
    
    
More information about the En-Nut-Discussion
mailing list