Jump to content
43oh

jsolarski

Members
  • Content Count

    568
  • Joined

  • Last visited

  • Days Won

    8

Reputation Activity

  1. Like
    jsolarski got a reaction from iDave in MSP430F149 Timer A capture   
    #pragma vector=TIMERA1_VECTOR __interrupt void CCR1_interrupt(void){ //needed for capture ** TAR = 0; //clears TAR to 0-- reset counter** TACCTL0 &= ~CCIFG; //clear Interrupt flag in capture 0 register** unsigned int tEdge = TACCR1; //captured count goes into tEdge varible ** midiRXBitState = PIN_MIDI_DATA & P1IN; //check pin for state--- TAIV = 0; //clear main interrupt flag - addBits(tEdge, !midiRXBitState); ///looks like it just ads bits together but i have no idea..... }
     
    natureTM correct me if i am wrong pn the comments
  2. Like
    jsolarski reacted to hiatus138 in Freebies at TI estore   
    It may have been pointed out here before, but TI has a few FREE (breakout boards?) in the estore right now. The easiest way to find them is to just enter "free" in the estore's search box. At the moment, there are 2 op-amp modules, a buffer module, and an amplifier module. I don't have time to look in detail, but they ARE there, and they ARE free. Incl. shipping.
     
    "Dem-buf-sot-1a - free" is the name/ part number of one of them. The description is "demonstration fixture"
    Limit 3 is listed also.
     
    Search "free" and you'll get a few dozen hits, most are priced $5.00, but a few are 0.00. I'm wondering if they rotate which ones are free occasionally, since the $5.00 ones also have free in the title.
     
    Maybe someone with a bit more free time tonight can look into them, and give us some more info about it.
     
    Btw, our friend kenneth finnegan (PhirePhly) has made a thermocouple amplifier board, he has a few spares he's willing to share with anyone who has a use for it. I don't mean to put words in his mouth, check out his blog for info. And once again, thanks Kenneth.
  3. Like
    jsolarski reacted to bluehash in PM system "Send mail to multiple members" fixed   
    Hello,
    You can now send messages to a maximum of 4 members at a time. There was a problem before, in which only one member could be added in a conversation.
  4. Like
    jsolarski reacted to oPossum in 256 x 192 graphics display using Fraunchpad - preview   
    A frame buffer for 256x192 pixels requires 6k. That is more than will fit in RAM, so the frame buffer is in the FRAM memory. NTSC video generated using TimerA0 for sync, and SPI with DMA for video.
     
    Graphics library functions:


    [*:hf56qo2f]Pixel
    [*:hf56qo2f]Line
    [*:hf56qo2f]Box
    [*:hf56qo2f]Circle
    [*:hf56qo2f]Ellipse
    [*:hf56qo2f]Quadratic and cubic bezier curve
    [*:hf56qo2f]BitBlt up to 24 pixels wide
    [*:hf56qo2f]OR, AND, and XOR drawing modes
    [*:hf56qo2f]Text with 8 x 12 font
     


  5. Like
    jsolarski reacted to hiatus138 in Radio Shack's recent campaign   
    I know you all have seen the recent radio shack ad campaign, about how they are embracing makers and diy-ers. I went in there the other day, and was pleasantly surprised to see that they had trebled the size of the components/tools/diy section! They now have a couple dozen kits from velleman and others, copper clad pcb and protoboards in many sizes and shapes, lots of project boxes and test equipment, anda lot of new components, like ic sockets, chip puller tool, and all that jazz.
     
    I was quite excited to see that perhaps the ads, and the poll they did on makezine, were being followed up on.
    I live in portland, OR, and I happen to live near the store that is known to all the other RS in town as "the diy branch" ie the one that has the most diy stuff in portland, so I don't know how well the rest of the country is being handled. However, I did go check in at 2 other radio shacks, and they had both done the same!
     
    I am excited about this turn of events!
     
    The stuff still _is_ expensive, but I just consider it the price I pay to have relatively obscure products (not obscure to diy-ers, but to the general public) available to me locally. No shipping costs, or long wait for delivery. Like buying a gallon of milk at the gas station instead of the grocery store.
     
    Has anyone else noticed this in their town?
    Wnat are all your thoughts on this? Someone on HaD said it was "too little, too late". I don't think thats the case. It may be too late to win back some of us, but there's always another generation of hackers just getting their toes wet.
  6. Like
    jsolarski reacted to Sivat in BJT H-Bridge   
    Thanks for your reply jsolarski.
     
    Well, I ended up soldering this to a small prototype board, trying to keep everything really close and tight, but I found that there was a short somewhere (I can't find it though!). So I put it together on a breadboard instead to see if it was the design that went wrong or something else.
     
    Turns out it works =) I have this hooked up to a little motor and my Launchpad right now and it is working like a charm.
  7. Like
    jsolarski reacted to RobG in New take on ADC -> LCD   
    You see, you don't need comments, you are right on the money
    I know, I know, sorry about that, it was late and I figured I will add them later.
     
    I made some improvements to the © code, now you can set precision as well.
     
    Different precision, same scale


     
    Different scale, same precision


     

    #include "msp430g2231.h" #include "adc_lcd.h" const char addressMap[4] = { 0x85, 0x8D, 0xC5, 0xCD }; void binaryToASCIIScale(unsigned int n, unsigned char * digits, unsigned int scale); void sendChars(unsigned char chars[], unsigned char length); void send(unsigned char data, unsigned char registerSelect); unsigned char d[4][6] = {{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0},{0,0,0,0,0,0}}; unsigned const char precision[4] = {5,5,5,5}; unsigned const char scale[4] = {3,3,3,3}; void sendDataArray(unsigned char data[], char length); char charIndex = 0; char valueIndex = 0; int values[4] = {0,0,0,0}; void main(void) { WDTCTL = WDTPW + WDTHOLD; BCSCTL1 = CALBC1_1MHZ; DCOCTL = CALDCO_1MHZ; P1OUT &= ~(CLOCKPIN + DATAPIN); P1OUT |= ENABLEPIN; P1DIR |= ENABLEPIN + CLOCKPIN + DATAPIN; initDisplay(); ADC10CTL1 = INCH_3 + CONSEQ_1; ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE; ADC10DTC1 = 0x04; ADC10AE0 |= 0x0F; TACTL = TASSEL_2 + MC_1 + ID_3; while(1) { ADC10SA = (unsigned int)values; ADC10CTL0 |= ENC + ADC10SC; _bis_SR_register(LPM0_bits + GIE); CCTL0 &= ~CCIE; valueIndex = 0; while(valueIndex < 4) { unsigned int binary = values[valueIndex]; sendInstruction(addressMap[valueIndex]-precision[valueIndex]); binaryToASCIIScale(binary, d[valueIndex], scale[valueIndex]); sendChars(d[valueIndex], precision[valueIndex]); valueIndex++; } } } // ADC10 interrupt service routine #pragma vector=ADC10_VECTOR __interrupt void ADC10_ISR(void) { CCR0 = 25000; CCTL0 = CCIE; } // Timer A0 interrupt service routine #pragma vector = TIMERA0_VECTOR __interrupt void Timer_A (void) { _bic_SR_register_on_exit(LPM0_bits); }
  8. Like
    jsolarski reacted to xpg in MSP430 Toolbox   
    Hello fellow 430'ers,

    I have been tinkering with this small project for a while, but think it's time to show it to the world. The MSP430 Toolbox has been inspired by various projects like the Bus Pirate, NJC's LaunchScope, and many others. The basic idea is to make a set of usable tools for MCU development, using the Launchpad and as few other components as possible. Also, rather than providing only the MCU side, I've created a small PC-program, which should make it easier to use the toolbox.
    Currently, I have implemented two "tools": A raw digital capturer, and an SPI spy which uses the USI for single-channel capturing. As always, capture frequency is limited by the UART/USB speeds, making an FTDI UART/USB chip much more fun than the Launchpad's UART/USB converter. I have implemented a "high-frequency" mode, which captures to RAM instead. But currently, it's limited to 50 8-bit samples (side note: the Fraunchpad might be fun to play with in this regard).

    Besides the two "tools", which are meant for capturing only, there is an interactive mode that can be used to send/receive via USI-SPI and simply control of the digital I/O on the Launchpad.

    The PC application is written in C# and uses Gtk, which means that it should run on both Linux and Windows. However, only Linux has been tested. It has some rough edges, but works okay . Currently, Monodevelop is required to compile the application.

    Well, on to some demonstration. First video shows the Launchpad connected to an ATMega, which has been loaded with a simply blinky program:




    Next video shows avrdude being used to program an ATMega (with the program seen in the first video):



    Source code for MSP430 firmware is available via git:

    Please take a look at config.h in order to configure MCU speed and UART baudrate.

    Source code for MSP430 PC client is available via git:
    git://gitorious.org/msp430-toolbox/msp4 ... client.git

    The patch required for AVRDUDE to work with the msp430 toolbox can be found here: http://xpg.dk/files/File/msp430/avrdude-msp430toolbox.patch.

    Questions and comments are more than welcome,
    Paul
  9. Like
    jsolarski reacted to websterling in RGB LED Lamp   
    Actually, I had made all of the changes necessary to port this to CCS. The problem was that, in the original code, TACCRO was set too low. Changing TACCRO=70 to TACCRO=100 in int main(void) was the fix.
     
    If anyone else is interested, the code follows. It only took 3 nights to figure this out...
     

    #include #include #include #include /****************************************************/ #define LED_BIT (BIT0|BIT1|BIT2) // Timer0 ticks #define TICKS_PER_SEC (1000000 / TACCR0) // 1MHz clock /****************************************************/ static uint8_t led_brightness[3] = {0x00,0x00,0x00}; static uint32_t sys_ticks = 0; static bool ADCDone = false; static uint16_t ADCValue; /****************************************************/ static void cpu_init(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT // configure system clock BCSCTL1 = CALBC1_1MHZ; // Set range DCOCTL = CALDCO_1MHZ; // SMCLK = DCO = 1MHz // _enable_interrupt(); } // Binary Code Modulation static void bcm_tick(uint8_t led_ticks) { uint8_t bcm = 0x00; switch(led_ticks) { case 0x1: case 0x2: case 0x4: case 0x8: case 0x10: case 0x20: case 0x40: case 0x80: // led_ticks is a power of 2 if (led_brightness[0] & led_ticks) bcm |= BIT0; if (led_brightness[1] & led_ticks) bcm |= BIT1; if (led_brightness[2] & led_ticks) bcm |= BIT2; P1OUT = bcm; } } // Timer0 ISR //interrupt(TIMERA0_VECTOR) TIMERA0_ISR(void) #pragma vector=TIMERA0_VECTOR __interrupt void TIMERA0_ISR (void) { bcm_tick(sys_ticks); sys_ticks++; } void Single_Measure(unsigned int chan) { ADC10CTL0 &= ~ENC; // Disable ADC ADC10CTL0 = ADC10SHT_3 + ADC10ON + ADC10IE; // 16 clock ticks, ADC On, enable ADC interrupt ADC10CTL1 = ADC10SSEL_3 + chan; // Set 'chan', SMCLK ADC10CTL0 |= ENC + ADC10SC; // Enable and start conversion } //interrupt(ADC10_VECTOR) ADC10_ISR(void) #pragma vector=ADC10_VECTOR __interrupt void ADC10_ISR (void) { ADCValue = ADC10MEM; ADCDone = true; } void hue2rgb(volatile uint8_t *r, volatile uint8_t *g, volatile uint8_t *b, uint16_t h) { uint16_t f; f = ( (h%60) <<8 ) / 60; h /= 60; switch(h) { case 0: *r = 0xFF; *g = f; *b = 0; break; case 1: *r = 0xFF - f; *g = 0xFF; *b = 0; break; case 2: *r = 0; *g = 0xFF; *b = f; break; case 3: *r = 0; *g = 0xFF - f; *b = 0xFF; break; case 4: *r = f; *g = 0; *b = 0xFF; break; default: *r = 0xFF; *g = 0; *b = 0xFF - f; break; } } int main(void) { cpu_init(); // setup LED pins P1DIR |= LED_BIT; // All LED pins as outputs P1OUT &= ~LED_BIT; // Turn off LED // TimerA SMCLK in UP mode TACTL = TASSEL_2 | MC_1; // Enable interrupt for TACCR0 match TACCTL0 = CCIE; // Set TACCR0, starts timer //TACCR0 = 70; // This must be short enough to look good and long enough for TIMER0_ISR to complete TACCR0 = 100; // This must be short enough to look good and long enough for TIMER0_ISR to complete //eint(); __enable_interrupt(); Single_Measure(INCH_7); while(1) { if (ADCDone) { ADCDone = false; hue2rgb(led_brightness+0, led_brightness+1, led_brightness+2, ((uint32_t)ADCValue*360)/1024); Single_Measure(INCH_7); } } }
  10. Like
    jsolarski reacted to SugarAddict in G2553 28pin Prototyping?   
    Yes, I should not have broken out the xin/xout... After testing it with both of the boards I'm using I've figured that scraping and removing a peice (next to the pin) of the traces for those two will fix the problem... oh well. There was one lucky design bonus. Jack fits perfectly with LP mounted on top. Which makes the breakout going downard fit in a single breadboard row instead of crossing over and spanning two of them. (Just gotta remember to not power both on accident this way, lol)
     




     
    And if you didn't notice the boards have 90
  11. Like
    jsolarski got a reaction from nuetron in Interfacing a YM3812 and LCD to 'G2231   
    lol, ill send you a few chips if you let out the magic smoke lol
  12. Like
    jsolarski reacted to DanAndDusty in Wii Nunchuk connector on the cheap   
    Hi all,
     
    As many of you know I am a fan of the UK store Poundland.. Everything in there is




  13. Like
    jsolarski reacted to Mac in CCS/ASSY: DS18B20   
    Hey guys. I was wondering if there was any interest in assembly language code examples? It's kind of a learning exercise for me so I'm wondering if I should just keep these snippets to myself until I have a completed program to share. Let me know what you think?
     
    This example converts the 16 bit raw Celsius data from a Maxim/Dallas DS18B20 OneWire?? temperature sensor to degrees Fahrenheit rounded to one decimal place. The raw Celsius data looks like this, SSSSSNNN NNNNFFFF, where the S bits are sign bits, the N bits are the integer portion of the temperature (0..127), and the F bits are the fractional portion of the temperature (1/16th or 0.0625
  14. Like
    jsolarski reacted to fj604 in Interfacing the Launchpad with TLC5940 16-channel PWM driver   
    Hi everyone,
     
    Here is my attempt to demo a TLC5940 PWM LED driver connected to the Launchpad. This code does not use interrupts and follows the basic sample from Demystifying TLC5940: http://sites.google.com/site/artcfox/demystifying-the-tlc5940
     
    Made using CCS 4.
     

    /* * TLC5940 Demo for MSP430 * Only PWM functionality is demonstrated * Dot correction function is not used * Rotates a pattern of decreasing light intensity on LEDs - OUT0..OUT15 * To pause, press and hold the S2 button on the launchpad * Launchpad LED1 stays on, LeED2 flashes on every PWM cycle */ #include // Pin mapping #define GSCLK_PIN BIT7 // to TLC5940 pin 18 #define SIN_PIN BIT1 // to TLC5940 pin 26 #define SCLK_PIN BIT2 // to TLC5940 pin 25 #define BLANK_PIN BIT4 // to TLC5940 pin 23 #define XLAT_PIN BIT5 // to TLC5940 pin 24 #define LED1_PIN BIT0 // Launchpad LED1 (Red) #define LED2_PIN BIT6 // Launchpad LED2 (Green) #define S2_PIN BIT3 // Launchpad S2 button // Number of daisy-chained TLC5940 ICs #define TLC5940_N 1 // Useful macros #define setHigh(n) ( P1OUT |= n ) #define setLow(n) ( P1OUT &= ~n ) #define pulse(n) { setHigh(n); setLow(n); } // PWM cycles to wait before rotating gsData #define DELAY 3 // Grayscale values for each channel in reverse order unsigned int gsData[] = { 0, // Channel 15 0, // Channel 14 0, // Channel 13 0, // Channel 12 BIT1, // Channel 11 BIT2, // Channel 10 BIT3, // Channel 9 BIT4, // Channel 8 BIT5, // Channel 7 BIT6, // Channel 6 BIT7, // Channel 5 BIT8, // Channel 4 BIT9, // Channel 3 BITA, // Channel 2 BITB, // Channel 1 BITB | BITA | BIT9 | BIT8 | BIT7 | BIT6 | BIT5 | BIT4 | BIT3 | BIT2 | BIT1 | BIT0 // Channel 0 } ; // Update gs during PWM cycle? unsigned char gsUpdateFlag=1; void init(void) { P1DIR |= GSCLK_PIN | SIN_PIN | SCLK_PIN | BLANK_PIN | XLAT_PIN; // Set output // Init output pins setLow(GSCLK_PIN); setLow(SCLK_PIN); setLow(XLAT_PIN); setLow(BLANK_PIN); } void GS(void) { unsigned int Data_Counter = 0, GSCLK_Counter; setLow(BLANK_PIN); for (GSCLK_Counter = 0; GSCLK_Counter < 4096; GSCLK_Counter++) { if (gsUpdateFlag && (! (Data_Counter > TLC5940_N * 192 -1))) { // Check and load next data bit, MSB first, 12 bits per value if (gsData[Data_Counter / 12] & (BITB >> ( Data_Counter % 12))) setHigh(SIN_PIN); else setLow(SIN_PIN); pulse(SCLK_PIN); Data_Counter++; P1OUT |= LED2_PIN; // LED2 on } else P1OUT &= ~LED2_PIN; // LED2 off pulse(GSCLK_PIN); } setHigh(BLANK_PIN); pulse(XLAT_PIN); gsUpdateFlag = 0; // PWM update finished, reset gsUpdate flag } void main(void) { int i, t; WDTCTL = WDTPW + WDTHOLD; // Disable watchdog timer // Set DCO to ~15.25 MHz as per datasheet // Does not use calibration values BCSCTL1 = RSEL0 | RSEL1 | RSEL2 | RSEL3; // RSELx = 15 DCOCTL = DCO0 | DCO1; // DCOx = 3, MODx = 0 init(); P1DIR |= LED1_PIN | LED2_PIN; // Enable Launchpad LEDs for output P1OUT |= LED1_PIN; // LED1 on P1OUT &= ~LED2_PIN; // LED2 off for (; // Loop forever { for (i=0; i < DELAY; i++) GS(); if (P1IN & S2_PIN) // If S2 not pressed { // Rotate gsData t = gsData[0]; for (i = 0; i < 15; i++) gsData[i] = gsData[i+1]; gsData[15] = t; gsUpdateFlag = 1; // Update gs on next PWM cycle } } }
  15. Like
    jsolarski got a reaction from nuetron in Interfacing a YM3812 and LCD to 'G2231   
    You are using the g2231, correct? The 2231 does not have CALBCS/CALDCO_8MHZ 16MHZ or 12MHZ programed by default. if you try to use them with out flashing them first, you will get some weird clock frequency lol
     
    If you want to use the calibrated frequency you will have to use ---http://www.43oh.com/forum/viewtopic.php?f=10&t=239&hilit=dco+calibration or in the TI example code for re-flashing the data. FYI you will need the 32K crystal installed to flash the data.
     
    Once you have confirmed that you have the calibration data on the chip then test out your clock.
     
     
    and by wave i meant .wav lol
     
    the low frequncy setting is there but has no affect that i know of on the 2231 2211. IF you look at the user guide it states, "XTS = 1 is not supported on msp430x20xx devices"
     
    If you think its there and TI is just not telling us then test it out with HF crystal and let us know
  16. Like
    jsolarski reacted to oPossum in Fast itoa() for CCS   
    itoa() is not part of the standard C library and is absent from CCS.
     
    Here are three functions to convert signed and unsigned integers to ASCII. They are written for speed, not compactness.
     
    void itoa(int, char *); // Convert signed integer to ASCII
    void utoa(unsigned, char *); // Convert unsigned integer to ASCII
    void btoa(unsigned, char *); // Convert unsigned char to ASCII (leading spaces)
     
    itoa() and utoa()

    utoa ; --- Unsigned to ASCII --- ; - Range 0 to 65535 ; - Leading zeros supressed push R10 ; clr R14 ; Clear packed BCD mov #-1, R10 ; Flag as positive rla R12 ; Get bit 15 of binary jmp unsigned ; itoa ; --- Integer to ASCII --- ; - Range -32768 to +32767 ; - Leading zeros supressed push R10 ; clr R14 ; Clear packed BCD rla R12 ; Get bit 15 of binary subc R10, R10 ; Save sign bit jne notneg ; Positive... inv R12 ; Negate negative numbers inc R12 ; This will overflow only for -32768 unsigned ; dadd R14, R14 ; Multiply BCD by 2 and add binary bit notneg ; .loop 12 ; Do 12 bits rla R12 ; Get bit 14 to 3 of binary dadd R14, R14 ; Multiply BCD by 2 and add binary bit .endloop ; clr R15 ; Clear digit 1 of packed BCD .loop 3 ; Do 3 bits rla R12 ; Get bit 2 to 0 of binary dadd R14, R14 ; Multiply BCD by 2 and add binary bit dadd R15, R15 ; .endloop ; swpb R14 ; Swap digit order mov R14, R12 ; Copy packed BCD digits and #0x0F0F, R12 ; Mask digits 5 & 3 rra R14 ; Shift digits 4 & 2 to lower nibble rra R14 ; rra R14 ; rra R14 ; and #0x0F0F, R14 ; Mask digits 4 & 2 tst R10 ; Negative? jne nosign ; No, skip sign... mov.b #'-', 0(R13) ; Negative sign to string inc R13 ; nosign ; mov #('0' << 8) | '0', R10 ; Make ASCII add R10, R12 ; add R10, R14 ; add R10, R15 ; cmp.b R10, R15 ; Is first digit a 0? jne dig5 ; No... cmp.b R10, R14 ; Is second digit a 0? jne dig4 ; No, only the first... cmp.b R10, R12 ; Is third digit a 0? jne dig3 ; No, only the first two... cmp R10, R14 ; Is fourth digit a 0? (second is zero) jne dig2 ; No, only the first three... dig1 ; First four digits are all 0 swpb R12 ; Fifth digit to string mov.b R12, 0(R13) ; inc R13 ; clr.b 0(R13) ; NULL terminate string pop R10 ; reta ; Return ; dig5 ; mov.b R15, 0(R13) ; First digit to string inc R13 ; dig4 ; mov.b R14, 0(R13) ; Second digit to string inc R13 ; dig3 ; mov.b R12, 0(R13) ; Third digit to string inc R13 ; dig2 ; swpb R14 ; Fourth digit to string mov.b R14, 0(R13) ; inc R13 ; jmp dig1 ; ;
    btoa()

    btoa ; --- Byte to ASCII --- ; - Range 0 to 255 ; - Leading zeros converted to spaces clr R14 ; Clear packed BCD swpb R12 ; Move LSB to MSB .loop 8 ; Do 8 bits rla R12 ; Get a bit of binary dadd R14, R14 ; Multiply BCD by 2 and add binary bit .endloop ; ; mov R14, R12 ; Copy packed BCD digits and #0x0F0F, R12 ; Mask digits 1 & 3 mov #('0' << 8) | '0', R15 ; Make ASCII add R15, R12 ; mov.b R12, 2(R13) ; Move digit 3 to bcd[2] swpb R12 ; Swap digits 1 & 3 mov.b R12, 0(R13) ; Move digit 1 to bcd[0] rra R14 ; Shift digit 2 to lower nibble rra R14 ; rra R14 ; rra R14 ; and #0x0F0F, R14 ; Mask digit 2 add R15, R14 ; Make ASCII mov.b R14, 1(R13) ; Move digit 2 to bcd[1] clr.b 3(R13) ; NULL terminate string cmp.b R15, 0(R13) ; Is first digit a 0? jne b2aex ; No... cmp.b R15, 1(R13) ; Is second digit a 0? jne b2a2d ; No, only the first.. mov #(' ' << 8) | ' ', 0(R13); Make first two digits spaces reta ; Return b2a2d ; mov.b #' ', 0(R13) ; Make first digit a space b2aex ; reta ; Return
    itoa.zip
  17. Like
    jsolarski reacted to bluehash in Definitive guide to installing/using mspgcc4?   
    Sergio had mailed this to me, a couple days back. I still have to blog it, but its at git and very readable:
    https://github.com/sergiocampama/Launch ... /README.md
  18. Like
    jsolarski reacted to sergiocampama in Definitive guide to installing/using mspgcc4?   
    keep in mind that xpg's script is for the latest non-release version of mspgcc, as it clones the repository... this is great when you want the latest of the latest, but if you need to have a stable release, and a release where you want to be able to give feedback on, it's better to have dated release version...
  19. Like
    jsolarski got a reaction from nuetron in Flashing the missing DCO calibration constants   
    You are correct in your thinking
  20. Like
    jsolarski got a reaction from bluehash in BJT H-Bridge   
    Your design works in the simulator with out an issue - http://www.falstad.com/circuit/#%24+1+5.0E-6+10.20027730826997+50+5.0+50%0At+192+272+272+272+0+1+-3.874423812487768+4.5454545452908923E-11+100.0%0At+496+272+416+272+0+1+-3.1194614479407026+0.7269038146844842+100.0%0At+496+176+416+176+0+-1+0.4267309226903304+-0.7269038146844826+100.0%0At+176+176+272+176+0+-1+1.1255761874213221+-4.545519516341301E-11+100.0%0AL+112+176+48+176+0+1+false+5.0+0.0%0AL+144+272+64+272+0+0+false+5.0+0.0%0AL+560+176+624+176+0+0+false+5.0+0.0%0AL+560+272+624+272+0+1+false+5.0+0.0%0Ag+336+352+336+400+0%0Al+304+224+384+224+0+1.0+6.356284936034807E-15%0Ad+272+288+272+256+1+0.805904783%0Ad+272+192+272+160+1+0.805904783%0Ad+416+288+416+256+1+0.805904783%0Ad+416+192+416+160+1+0.805904783%0Aw+416+256+384+224+0%0Aw+416+192+384+224+0%0Aw+272+192+304+224+0%0Aw+272+256+304+224+0%0Aw+272+288+272+352+0%0Aw+272+352+336+352+0%0Aw+336+352+416+352+0%0Aw+416+288+416+352+0%0Ar+496+272+560+272+0+1000.0%0Ar+496+176+560+176+0+1000.0%0Ar+176+176+112+176+0+1000.0%0Ar+192+272+144+272+0+1000.0%0Ar+176+176+176+112+0+10000.0%0Ar+496+176+496+128+0+10000.0%0Ar+496+272+496+352+0+10000.0%0Ar+192+272+192+352+0+10000.0%0Aw+192+352+272+352+0%0Aw+416+352+496+352+0%0AR+336+144+336+64+0+0+40.0+5.0+0.0+0.0+0.5%0Aw+176+112+272+112+0%0Aw+272+112+272+160+0%0Aw+416+160+416+128+0%0Aw+416+128+496+128+0%0Aw+416+128+336+144+0%0Aw+272+112+336+144+0%0Ao+9+64+0+35+0.3125+9.765625E-5+0+-1%0A
     
    my advise never activate at the same time AC or DB - it will cause a short and your circuit is then toast
     
    as for your current for the motor, depend on the motor you put in there, your motor should have some ratings for current, stall current, and current at full speed
  21. Like
    jsolarski reacted to xpg in Definitive guide to installing/using mspgcc4?   
    Just thought I wanted to chime in: As it can be a bit of a pain to copy/paste the build descriptions for mspgcc uniarch, I've created a small script to ease this task. This simple build script fetches and builds the trunk of the MSP430 GCC Uniarch project as described on the uniarch wiki-page. Currently, it works only on Linux, as it tries to detect required packages and requests them to be installed. It has been tested on Ubuntu 11.04 and Fedora Core 13.
     
    Usage of the script is very easy. Create a new directory for MSP430 GCC Uniarch, copy build.sh to it, and run it. Example:

    # mkdir -p $HOME/msp430 # cp build.sh $HOME/msp430 # cd $HOME/msp430 # ./build.sh
     
    If the script finished succesfully (which might take a while) everything is installed into $HOME/msp430/install, and setting PATH to $HOME/msp430/install/bin allows msp430gcc to be invoked with "msp430-gcc".
     
    Get it here: http://xpg.dk/files/File/msp430/build.sh
     
    Feedback is appreciated.
     
    Cheers,
    Paul
  22. Like
    jsolarski reacted to oPossum in 32 x 16 text display on TV using Fraunchpad - preview   
    MIDI data is decoded and displayed. Video output of Fraunchpad is lower right (picture-in-picture), lower left is MIDI data being sent to serial port, top is MIDI player.
     
    Still have work to do on the code, so not posting it yet. The MIDI decode is in hex because I haven't written the itoa() functions yet.
     
     

    http://www.youtube.com/watch?v=M3jINBajWqI
  23. Like
    jsolarski got a reaction from gwdeveloper in Uniarch mspgcc ISR syntax   
    For coding interrupts on uniarch mspgcc --
     
    use the following format
     

    __attribute__((interrupt(ISR_VECTOR))) void Isr_Vector_Name(void) { //code goes here }
     
    no need to include signal.h, or leagacymsp430.h
    you will only need to include the device specific header or msp430.h
    http://sourceforge.net/mailarchive/foru ... pgcc-users
    or check out my post for all 4 variations ---http://justinstech.org/2011/07/msp430-different-interrupts-for-different-compilers/
     
    also one other thing i noticed is isr_compat.h in the current build for uniarch
    I will trying it out and seeing if it will make porting code from either IAR/CSS or mspgcc4 easier.
  24. Like
    jsolarski got a reaction from Rickta59 in Uniarch mspgcc ISR syntax   
    For coding interrupts on uniarch mspgcc --
     
    use the following format
     

    __attribute__((interrupt(ISR_VECTOR))) void Isr_Vector_Name(void) { //code goes here }
     
    no need to include signal.h, or leagacymsp430.h
    you will only need to include the device specific header or msp430.h
    http://sourceforge.net/mailarchive/foru ... pgcc-users
    or check out my post for all 4 variations ---http://justinstech.org/2011/07/msp430-different-interrupts-for-different-compilers/
     
    also one other thing i noticed is isr_compat.h in the current build for uniarch
    I will trying it out and seeing if it will make porting code from either IAR/CSS or mspgcc4 easier.
  25. Like
    jsolarski got a reaction from gordon in Uniarch mspgcc ISR syntax   
    For coding interrupts on uniarch mspgcc --
     
    use the following format
     

    __attribute__((interrupt(ISR_VECTOR))) void Isr_Vector_Name(void) { //code goes here }
     
    no need to include signal.h, or leagacymsp430.h
    you will only need to include the device specific header or msp430.h
    http://sourceforge.net/mailarchive/foru ... pgcc-users
    or check out my post for all 4 variations ---http://justinstech.org/2011/07/msp430-different-interrupts-for-different-compilers/
     
    also one other thing i noticed is isr_compat.h in the current build for uniarch
    I will trying it out and seeing if it will make porting code from either IAR/CSS or mspgcc4 easier.
×
×
  • Create New...