Jump to content
43oh

oPossum

Members
  • Content Count

    925
  • Joined

  • Last visited

  • Days Won

    103

Everything posted by oPossum

  1. Digital Picture Frame Thermometer A digital picture frame is used as a thermometer. Pictures representing a range of temperature are displayed by simulating the press of the next or previous buttons on the picture frame. This makes the project very simple by avoiding having to drive the LCD directly with the microcontroller. The high resolution backlit display is much more readable than the usual reflective monochrome LCD thermometer and the pictures can be as simple or fancy as you want. Project thread Temperature displayed on picture frame. Typical wiring. Code dpft.
  2. A digital picture frame is used as a thermometer. Pictures representing a range of temperature are displayed by simulating the press of the next or previous buttons on the picture frame. This makes the project very simple by avoiding having to drive the LCD directly with the microcontroller. The high resolution backlit display is much more readable than the usual reflective monochrome LCD thermometer and the pictures can be as simple or fancy as you want. A Maxim DS1820, DS18S20, DS18B20 or DS1822 temperature sensor can be used. The code will adapt to any of these models. The DS18B20 is re
  3. This is a reimplementation of adafruit's TV-B-Gone kit. It has been written from scratch to be more efficient and more precise than the AVR version. Assembly code is used for the critical timing, everything else is in C. Clock is 1 MHz (vs. 8 MHz for AVR). This code is small enough to fit in a G2231 (2K flash, 128 RAM) that comes with the launchpad. There are only 39 codes due to limited flash capacity. Obviously larger parts like the G2553 could be used to fit all codes and add additional features. main code (excerpt) void send_code(TIRCODE * const ic) { const uint8_t *code_byt
  4. He gave a very straight, to the point, and clear answer: [*:18pt2ndo]The matching network is different [*:18pt2ndo]We do not support modifying the module [*:18pt2ndo]We will not specify the changed component values Ask an experienced RF engineer about the many differences between a whip antenna at the end of a short piece of coax and a F antenna on a PCB. They can explain it much better than I can - and with more authority.
  5. The antenna is there, but it is not active. Some of the components are missing, and some in the matching network are the wrong value for the PCB antenna.
  6. A break is required to end a case block. switch(n) { case 1: // do something if n == 1 break; case 2: // do something if n == 2 break; } switch(n) { case 1: // do something if n == 1 case 2: // do something if n == 1 or n == 2 case 3: // do something if n == 1 or n == 2 or n == 3 break; } You could do this, but it is rather inefficient... void delay_ms(unsigned ms) { switch(ms) { case 10: __delay_cycles(100000); case 9: __delay_cycles(100000); case 8: __delay_cycles(100000); case 7: __delay_cycles(100000); case 6: __delay
  7. You forgot the break; statements in the delay() switch/case. The easy way to do it... void delay_ms(unsigned ms) { do __delay_cycles(100000); while(--ms); }
  8. They may decide to charge the correct price for those that where undercharged. The part # on the website is correct. They are not going to give you dev kits because you didn't know what you where ordering and totally failed to put any effort in to researching it.
  9. Arrow website shows part # 450-0012 I posted the datasheet for that specific part in the second post of this thread so it would be clear exactly what it was. The dev kit is part # 450-0023
  10. The output of a typical micrcontroller can supply a limited current, but is not (usually) current limited. Big difference between limited current and current limited. A base resistor must be used to limit the current to what the microcontroller can supply without exceeding the max spec, or preferably nominal spec. Be aware that there are often per-port and per-pin ratings. The absolute max rating is often a rather useless figure. A gate resistor (or inductor / ferrite bead) on a power MOSFET is required to reduce the chance of very high frequency self-oscillation.
  11. Got mine today. The deal is real. Anyone have a source for cheap antenna?
  12. The debugger uses the reset line for communication with the MSP430 while debugging (assuming SBW), so the reset button must not be used while debugging. If you are using CSS, then you must start the code after it has been downloaded. Click the run button on the toolbar in the debug window. Do not unplug USB while the debugger is running - it probably will not be able to reconnect to the hardware and may hang.
  13. The smallest value you can use for PWM is determined by interrupt latency. The new value must be higher than the current timer value to prevent glitches. The timer should be updated immediately in the ISR. Since calculating the new value will take some time, a precalcutlated value from the last ISR iteration can be used to allow immediate update. This code works well and does interpolation... #include "msp430g2231.h" /* 1 Vcc - 2 P1.0 In PU IO Not Used 3 P1.1 Out -- IO Txd 4 P1.2 In PU IO Rxd 5 P1.3 In PU IO Switch 6 P1.4 Out -- Alt SMCLK out
  14. MSP430s with USCI support IRDA. That would be a much better way than trying to adapt one wire to IR.
  15. Interrupts do not have to be explicitly enabled at the end of an ISR, the reti instruction that is used to return from a function declared as __interrupt will do that. In most cases there is no need to change the GIE state within an ISR. When an interrupt occurs GIE will be cleared and the __interrupt keyword tells the compiler to save registers and use reti to set GIE.
  16. Yes, there is some clock jitter. I think it is due to the N/N+1 modulation. The FRAM parts are much worse - not sure why. Are you using a chip with 16 MHz factory cal?
  17. It is 7 cycles per loop iteration, the asm code generated by the compiler is... xor.b #64, &P1OUT // 5 clock cycles jmp $ - 6 // 2 clock cycles It can be reduced to 6 cycles with assembly... __asm(" mov #64, R15"); __asm(" xor.b R15, &P1OUT"); // 4 clock cycles __asm(" jmp $ - 4"); // 2 clock cycles This is 10 cycles per toggle... __asm(" mov #64, R15"); __asm(" bis.b R15, &P1OUT"); // 4 clock cycles __asm(" bic.b R15, &P1OUT"); // 4 clock cycles __asm(" jmp $ - 8"); // 2 clock cycles You can enable SM
  18. datasheet It has a MSP430F5437 + CC2520 & CC2591 radio chips 802.15.4 MAC or ZigBee Stack (load via JTAG)
  19. oPossum

    5v to 3v?

    If the MSP430 and the I/O attached to it draw ~ 25 mA or less, then an ordinary red LED can be used to drop 5V to 3.3V. Video shows schematic, and explains this circuit. A pair of AA or AAA alkaline batteries is also a handy source of 3V power.
  20. I think that should work. The average should be 1000 cycles. Due to variable latency, it won't be exactly 1000 every time.
  21. link WATCH SPECIFICATIONS: Two Platforms: Analog / digital with two 16x80 white OLED displays Digital with 96x96 reflective / always on display technology Features: Bluetooth
  22. There are two timer interrupts. Make sure you are using the correct one. Try both if you have any doubts.
×
×
  • Create New...