
rebeltaz
Members-
Content Count
158 -
Joined
-
Last visited
-
Days Won
5
Everything posted by rebeltaz
-
I think I got three of these 74c922 ICs on eBay not too long ago for under $10 including shipping for all three. Looking back, probably not necessary, but I enjoyed working with them and getting it all working
-
I can use level-shifting - it was just an added part count - either two resistors for each line (for a total of twelve resistors) or a max232 level shift on each line (for a total of 3 dual shift ICs), but I have found that in this particular case, that wasn't necessary. As for your second point... yeah, that thought occurred to me after I had already designed this. I'm not sure why it didn't dawn on me that I was using six lines for the encoder IC when using the keypad matrix by itself would have only added one addition line. I guess that comes from having way too many junkbox parts layin
-
Oh, cool... All three tunes overran the 2553's memory as well, but I did the const trick and I was able to fit it all on the 2452. Thanks, dude!
-
Thanks to my trusty "Teach Yourself C for Linux" book I figured this out, in case anyone else has this problem and needs to do this: const unsigned int OdeToJoy[][2] = {note, duration, note, duration, ... , 0, 0} const unsigned int FuneralMarch[][2] = {note, duration, note, duration, ... , 0, 0} const unsigned int (*tune)[2]; void main(void) //snipped// if (DISABLED) PlayMusic(DISABLED); else PlayMusic(ENABLED); //snipped// void PlayMusic(unsigned int status) { switch (status) { case (DISABLED): { tune = FuneralMarch; break; } case (ENABLED): { tune = OdeToJoy; break;
-
OK... I can see that. So the only way to do this is to use three separate arrays and three loops, like this: //initialize array for "Ode To Joy" const unsigned int OdeToJoy[][2] = { e, quarter, e, quarter, f, quarter, g, quarter, g, quarter, f, quarter, e, quarter, d, quarter, c, quarter, c, quarter, d, quarter, e, quarter, e, dquarter, d, eighth, d, half, e, quarter, e, quarter, f, quarter, g, quarter, g, quarter, f, quarter, e, quarter, d, quarter, c, quarter, c, quarter, d, quarter, e, quarter, d, dquarter, c, eighth, c, half, d, quarter, d, quart
-
In my project, I would like to be able to play one of three different tunes based on a condition. Rather than initialize three separate <=100x2 global arrays and then having three identical loops to play the correct notes, I am trying to do this: void PlayMusic(unsigned int status) { delay_ms(500); switch (status) { case (DISABLED): //initialize array for "Ode To Joy" const unsigned int tune[][2] = { e, quarter, e, quarter, f, quarter, g, quarter, g, quarter, f, quarter, e, quarter, d, quarter, c, quarter, c, quarter, d, quarter, e, quarter, e, dquar
-
Wow! Talk about in-depth! I actually have gone over the Basic Clock Module section of that document and only became more confused... I think understand now, or at least if not, I can study your explanation further and figure it out. I really do appreciate the help.
-
Can someone explain to me, in simple language, the difference in the various clocks (MCLK, SMCLK, ACLK, etc.) and when they're used, how to know which to use... Also, I am using this code in my program: void ConfigClocks(void) { WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF) FaultRoutine(); // If calibration data is erased // run FaultRoutine() BCSCTL1 = CALBC1_1MHZ; // Set range DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation BCSCTL3 |= LFXT1S_2; // LFXT1 = VLO IFG1 &= ~OFIFG; // Clear OSCFault flag BCSCTL2 = 0
-
Thank you all! With y'all's help I was finally able to get this working!
-
By global, do you mean declaring them ahead of any function (including main)? I have done that. They are all declared (or is it defined?) before main is called. I can try adding static to the ones I need to see and see if that works. What is a local break point?
-
I did set a couple of breakpoints, but the Variables tab never populated... even in paused mode.
-
OK.. somehow I have gotten the code to work pretty much as expected except for reading the keypad. I moved the ABCD inputs to PORT2 so I could better manage them, changed the OE pin on the 74c922 to msp430 control instead of continuously grounded... but I still have a problem. Is there no way to monitor variables in CCS debug mode? I see the Variables tab, but there is nothing there... I need to be able to see what is actually in the variables before I can debug this any further.
-
I did... all he said was that it was so long ago and pretty much left it at that...
-
I did use P1IE=BIT0 in the config function to select only the P1.0 pin. Would that not set bit 0 and clear all of the other bits? I didn't disable and re-enable that interrupt because with the P1IE=BIT0 command, I wouldn't think that the buzzer output would trigger another interrupt. I added the interrupt disable to the ISR and I am still getting the same results . D'oh... yeah, I guess that DOES make sense, huh?
-
I jumped head-first in a attempted my first project - a keyad controller for an alarm system I built. Of course, it doesn't work I hope y'all can help me figure out why? The first thing I noticed is that the compiler (CCS) complains that the ISRs I created are making calls to functions. "SR PORT1_ISR calls function beep. Recommend moving function call away from ISR, or inlining the function, or using pragmas". I don't understand how to 'move [it] away from [the] ISR' or how to 'inline' it. Not sure if that is a big deal or not. Here's how this SHOULD work: when first powered up, if t
-
The author seems to no longer offer this. I don't suppose anyone has a copy of the code and the documentation that they could share?
-
Wow! Talk about confusing... OK.. Thank you. I get that now.
-
I am trying to write a program using the MPS430 User Guide, the mps430g2553.h and the Getting Started tutorial as guides. I'll admit that while I do know hexidecimal, it is not my first language and having to think in hex, binary and decimal all at the same time is giving me a headache! In the Getting Started tutorial, it says to use TACTL = TASSEL_1 + MC_2 to select the ACLK and set operation to continuous mode. In the User Guide, it shows bits 5-4 of the TACTL register being set to 10 to enable continuous mode. So far so good. But when I look in the header file, it shows MC_2 being defin
-
Oh great! Another language to learn! I did have the interfacing article, but I didn't have the keypad article. I appreciate that. I am still trying to get used to the 14- and 20-pin verisons (plus that's the only development board I have) as well as C, so I'm gonna have to forgo that article just now. But, I did save it for future reference and projects(?). Thank you!
-
Yeah... Im kind of old-technology myself Besides, the 74c922 was the only matrix encoder I could find and I had a few laying around. So just to make sure I understand, as long as I power the 74c922 using the same 3.3 - 3.5v source as I do the MSP, then they can talk to each other without a level-shifter? I'm going to try and stick with it. I spent enough time trying to learn this, I might as well. Thanks...
-
After spending a week getting to know the MSP430 intimately on the software side, learning how to program it and for the most part getting the hang of it, I laid out my first circuit - the main reason that I started this project in the first place: a keypad for an alarm system I built which is currently using a manual key switch. So, while designing the circuit, I was reading the datasheets on the MSP and the 74c922 keypad matrix encoder and I think I realized there's a problem. When I found the MSP, I knew it was low-power, but I thought that meant low current drain. I am attaching wh
-
LOL.. yeah. I don't know why I kept typing 2552. Thanks... Actually what I want to print is the datasheet, not the user guide. The datasheet is only about 70 pages. And while search is nice, I'm old-fashioned... I do better with flip - as in flipping through the pages
-
Sure enough! Thank you
-
Does anyone have an Eagle CAD library file for the 20-pin msp430g2553? I found one library, but it is only for the 14-pin version. I'd appreciate it Thanks...
-
I want to thank you guys for your help. I think I have learned quite a bit and I seem to understand most of it. I downloaded the datasheets for both the msp430g2452 and the 2552. Since they are both about 70 pages each, before I go print them out and try to learn form them... let me ask something. Is the 2452 the same as the 2552 program-wise and pin-wise, except that the 2552 has more memory space and more I/O pins? In other words, can I just print out the 2552 datasheet and use it for the 2452 as well, ignoring the extra pins and remembering that the memory is limited? Thanks again...