Hi everybody, I am learning to program with MCUs and now i have got the SK-XC164 board.I am trying to transmit via ASC0 a message. This message has 6 equal bytes and I must do it with transmit interrupt. Has anyone a simple program to practise??. The message I would like to see the message through Hyperterminal on PC. Thanks to everyone.
For Tamir: I have different vector for my interrupt service routine. Look this:
#define ASC0_TINT 0x2A #define ASC0_RINT 0x2B #define ASC0_TBINT 0x47 #define ASC1_TBINT 0x5E #define ASC1_RINT 0x49 void ASC1_viRx(void) interrupt ASC1_RINT using RB_LEVEL15 { ... }
For Chris: I have already taken that into account. At this moment, I'm not using JTAG, therefore this Rx pin is free. Its my opinion :( Thanks.
did you make sure your ISRs have distinct priorities (group/level, if it is indeed the same as on a C166...)?
ASC1_CON = 0x0011; // load ASC1 control register ASC1_BG = 0x0011; // load ASC1 baud rate time reload register ASC1_TXFCON = 0x0100; // load ASC1 transmit FIFO control register ASC1_RXFCON = 0x0100; // load ASC1 receive FIFO control register ALTSEL0P3 |= 0x0020; // select alternate output function P3 |= 0x0020; //set data register DP3 |= 0x0020; //set direction register /// ----------------------------------------------------------------------- /// Configuration of the used ASC1 Interrupts: /// ----------------------------------------------------------------------- /// TxBuffer service request node configuration: /// - TxBuffer interrupt priority level (ILVL) = 14 /// - TxBuffer interrupt group level (GLVL) = 1 /// - TxBuffer group priority extension (GPX) = 0 ASC1_TBIC = 0x0079; /// Rx service request node configuration: /// - Rx interrupt priority level (ILVL) = 15 /// - Rx interrupt group level (GLVL) = 1 /// - Rx group priority extension (GPX) = 0 ASC1_RIC = 0x007D; ASC1_CON |= 0x8000; // enable baud rate generator
Finally, the mistake was that the wire wasn't well connected. The program runs correctly. Thanks for your helps