Hank you could get the QFP package, 28 pins in a 4mmX4mm space![]()
Hank you could get the QFP package, 28 pins in a 4mmX4mm space![]()
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
QFP at 0.5mm pitch is a bit too challenging for my soldering iron..
Just noticed a discrepancy, on the Microchip site ....the 'highlights' of the PIC16Ff1782/3 has 4 x 8 bit timers & 1 x 16 bit timer shown...
http://www.microchip.com/wwwproducts...cName=en552738
but in the datasheet it's only talking of 2 x 8 bit timers & 1 x 16 bit timer...
http://ww1.microchip.com/downloads/e...Doc/41579B.pdf
Bert...re your former post/points, it's late here in the UK, I've now had a couple of beers too....this is challenging for McSpank's grey matter even when sober, so I'll defer until later!
Last edited by HankMcSpank; - 28th August 2011 at 00:26.
OMG!!! Hank I would be way challanged using those on 1/4" spade terminals with 14GA wire. LMAO!!!!!
-Bert
The glass is not half full or half empty, Its twice as big as needed for the job!
http://foamcasualty.com/ - Warbird R/C scratch building with foam!
ok, not running interrupts here, just the bare minimum main loop (as per Bert's proposal)...
not sure if my maths is correct here, butCode:tuning_word VAR word accumulator VAR WORD ' ACCUMULATOR = 0 ' clear down the accumulator before starting. TUNING_WORD = 1 ' ' Main: ACCUMULATOR = ACCUMULATOR + tuning_word ' Lookup Accumulator.HighBYTE, [$80,$83,$86,$89,$8C,$8F,$92,$95,$98,$9C,$9F,$A2,$A5,$A8,$AB,$AE,$B0,$B3,$B6,$B9,$BC,$BF,$C1,$C4,_ $C7,$C9,$CC,$CE,$D1,$D3,$D5,$D8,$DA,$DC,$DE,$E0,$E2,$E4,$E6,$E8,$EA,$EC,$ED,$EF,$F0,$F2,$F3,$F5,$F6,$F7,$F8,$F9,$FA,$FB,$FC,$FC, _ $FD,$FE,$FE,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$FE,$FD,$FC,$FC,$FB,$FA,$F9,$F8,$F7,$F6,$F5,$F3,$F2,$F0,$EF,$ED,$EC, _ $EA,$E8,$E6,$E4,$E2,$E0,$DE,$DC,$DA,$D8,$D5,$D3,$D1,$CE,$CC,$C9,$C7,$C4,$C1,$BF,$BC,$B9,$B6,$B3,$B0,$AE,$AB,$A8,$A5,$A2,$9F,$9C, _ $98,$95,$92,$8F,$8C,$89,$86,$83,$7F,$7C,$79,$76,$73,$70,$6D,$6A,$67,$63,$60,$5D,$5A,$57,$54,$51,$4F,$4C,$49,$46,$43,$40,$3E,$3B, _ $38,$36,$33,$31,$2E,$2C,$2A,$27,$25,$23,$21,$1F,$1D,$1B,$19,$17,$15,$13,$12,$10,$0F,$0D,$0C,$0A,$09,$08,$07,$06,$05,$04,$03,$03, _ $02,$01,$01,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$01,$02,$03,$03,$04,$05,$06,$07,$08,$09,$0A,$0C,$0D,$0F,$10,$12,$13, _ $15,$17,$19,$1B,$1D,$1F,$21,$23,$25,$27,$2A,$2C,$2E,$31,$33,$36,$38,$3B,$3E,$40,$43,$46,$49,$4C,$4F,$51,$54,$57,$5A,$5D,$60,$63, _ $67,$6A,$6D,$70,$73,$76,$79,$7C],PORTC ' goto main ' END
total number of sine 'slices' = 256 (1 period...ie all the values in the array)
accumulator is 16 bits long therefore counts to 65536 & rolls over
With the tuning word set to 1 (this is the number added to the accumulator on each loop)
My scope measures a waveform frequency of 5.09Hz, therefore...
sampling rate = Frequency/tuning word * accumulator or 5.09/1 * 65536 = 333,578hz ..........or a sampling rate of 333.578khz (ie how often the main loop is erhm looping)
...this actually kinda sucks for a DDS sampling rate (most of the DDS solutions talk of a mega high sampling rate) ....I'm running my PIC at 32Mhz Osc (8mhz * 4 PLL), therefore instruction clock of 8Mhz.
The highest frequency with all the bits in the array being read properly (vs being skipped) is now about 1.3Khz....
Any top tips for getting the effective sampling rate even higher? (ie getting the main loop to run faster)
Last edited by HankMcSpank; - 28th August 2011 at 18:40.
Not sure but I feel using something else than LOOKUP may speed up the process... Which PIC you use right now?!?
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
I'm using a 16f1828 .
Is it me or the problem lie in the .HighByte thing?
Lookup Accumulator.HighBYTE, [
It take 256 times BEFORE it goes to the next index. though I may need to sleep.
Steve
It's not a bug, it's a random feature.
There's no problem, only learning opportunities.
Bookmarks