<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="bbPress/1.0.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>LeafLabs Garden &#187; Topic: Hello DAC</title>
		<link>http://forums.leaflabs.com/topic.php?id=7</link>
		<description>A place to share, learn, and grow...</description>
		<language>en-US</language>
		<pubDate>Fri, 22 Jan 2016 00:04:26 +0000</pubDate>
		<generator>http://bbpress.org/?v=1.0.2</generator>
		<textInput>
			<title><![CDATA[Search]]></title>
			<description><![CDATA[Search all topics from these forums.]]></description>
			<name>q</name>
			<link>http://forums.leaflabs.com/search.php</link>
		</textInput>
		<atom:link href="http://forums.leaflabs.com/rss.php?topic=7" rel="self" type="application/rss+xml" />

		<item>
			<title>importer on "Hello DAC"</title>
			<link>http://forums.leaflabs.com/topic.php?id=7#post-12</link>
			<pubDate>Sat, 03 Apr 2010 12:10:57 +0000</pubDate>
			<dc:creator>importer</dc:creator>
			<guid isPermaLink="false">12@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;on Tue 26 of Jan., 2010 20:00 EST, by poslathian&#60;/p&#62;
&#60;p&#62;I feel your pain on the lack of project posting! we have quite a few unfinished goodies here. I sense an impending dump of videos coming from us....
&#60;/p&#62;</description>
		</item>
		<item>
			<title>importer on "Hello DAC"</title>
			<link>http://forums.leaflabs.com/topic.php?id=7#post-11</link>
			<pubDate>Sat, 03 Apr 2010 12:10:35 +0000</pubDate>
			<dc:creator>importer</dc:creator>
			<guid isPermaLink="false">11@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;on Mon 25 of Jan., 2010 12:01 EST, by efox &#60;/p&#62;
&#60;p&#62;this is definitly awesome. Good job on the the sinusoid collinmel !&#60;/p&#62;
&#60;p&#62;There is like 100 maples out there, but no one has done anything ?! Other than the led blinking that I believe LarryP posted ?&#60;/p&#62;
&#60;p&#62;Come on people ! SHARE YOUR STUFF. Id love to see it, even if you think its simple and mundane, im sure others would like to see what you have done. I would for sure !&#60;/p&#62;
&#60;p&#62;@poslathian&#60;br /&#62;
How is the interrupt API ? Are 32 nested interrupts ready to do our bidding ?&#60;/p&#62;
&#60;p&#62;Omg I can't wait to play with board....
&#60;/p&#62;</description>
		</item>
		<item>
			<title>hadley on "Hello DAC"</title>
			<link>http://forums.leaflabs.com/topic.php?id=7#post-9</link>
			<pubDate>Sat, 03 Apr 2010 12:09:22 +0000</pubDate>
			<dc:creator>hadley</dc:creator>
			<guid isPermaLink="false">9@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;on Tue 12 of Jan., 2010 16:23 EST, by poslathian &#60;/p&#62;
&#60;p&#62;Id call this a win!&#60;/p&#62;
&#60;p&#62;In terms of getting the timer interrupts working, the very long way to get started would be with this:&#60;br /&#62;
&#60;a href=&#34;http://www.st.com/stonline/products/literature/rm/13902.pdf&#34; rel=&#34;nofollow&#34;&#62;http://www.st.com/stonline/products/literature/rm/13902.pdf&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;I would also check in the repo at leaflabs/library/src/lib/timers.c&#60;/p&#62;
&#60;p&#62;Were making progress towards adding these sorts of things to the library, I'll post here once theres an API for timer interrupts. If you make one first, please do let us know!&#60;/p&#62;
&#60;p&#62;Also, FYI, the vector table is &#34;weakly&#34; defined in the linker scripts. This means that if you define any of the following symbols as a function, then this will create an interrupt callback for that particular peripheral.&#60;/p&#62;
&#60;p&#62;.long SysTickHandler&#60;/p&#62;
&#60;p&#62;.long WWDG_IRQHandler&#60;/p&#62;
&#60;p&#62;.long PVD_IRQHandler&#60;/p&#62;
&#60;p&#62;.long TAMPER_IRQHandler&#60;/p&#62;
&#60;p&#62;.long RTC_IRQHandler&#60;/p&#62;
&#60;p&#62;.long FLASH_IRQHandler&#60;/p&#62;
&#60;p&#62;.long RCC_IRQHandler&#60;/p&#62;
&#60;p&#62;.long EXTI0_IRQHandler&#60;/p&#62;
&#60;p&#62;.long EXTI1_IRQHandler&#60;/p&#62;
&#60;p&#62;.long EXTI2_IRQHandler&#60;/p&#62;
&#60;p&#62;.long EXTI3_IRQHandler&#60;/p&#62;
&#60;p&#62;.long EXTI4_IRQHandler&#60;/p&#62;
&#60;p&#62;.long DMAChannel1_IRQHandler&#60;/p&#62;
&#60;p&#62;.long DMAChannel2_IRQHandler&#60;/p&#62;
&#60;p&#62;.long DMAChannel3_IRQHandler&#60;/p&#62;
&#60;p&#62;.long DMAChannel4_IRQHandler&#60;/p&#62;
&#60;p&#62;.long DMAChannel5_IRQHandler&#60;/p&#62;
&#60;p&#62;.long DMAChannel6_IRQHandler&#60;/p&#62;
&#60;p&#62;.long DMAChannel7_IRQHandler&#60;/p&#62;
&#60;p&#62;.long ADC_IRQHandler&#60;/p&#62;
&#60;p&#62;.long USB_HP_CAN_TX_IRQHandler&#60;/p&#62;
&#60;p&#62;.long usb_lpIRQHandler&#60;/p&#62;
&#60;p&#62;.long CAN_RX1_IRQHandler&#60;/p&#62;
&#60;p&#62;.long CAN_SCE_IRQHandler&#60;/p&#62;
&#60;p&#62;.long EXTI9_5_IRQHandler&#60;/p&#62;
&#60;p&#62;.long TIM1_BRK_IRQHandler&#60;/p&#62;
&#60;p&#62;.long TIM1_UP_IRQHandler&#60;/p&#62;
&#60;p&#62;.long TIM1_TRG_COM_IRQHandler&#60;/p&#62;
&#60;p&#62;.long TIM1_CC_IRQHandler&#60;/p&#62;
&#60;p&#62;.long TIM2_IRQHandler&#60;/p&#62;
&#60;p&#62;.long TIM3_IRQHandler&#60;/p&#62;
&#60;p&#62;.long TIM4_IRQHandler&#60;/p&#62;
&#60;p&#62;.long I2C1_EV_IRQHandler&#60;/p&#62;
&#60;p&#62;.long I2C1_ER_IRQHandler&#60;/p&#62;
&#60;p&#62;.long I2C2_EV_IRQHandler&#60;/p&#62;
&#60;p&#62;.long I2C2_ER_IRQHandler&#60;/p&#62;
&#60;p&#62;.long SPI1_IRQHandler&#60;/p&#62;
&#60;p&#62;.long SPI2_IRQHandler&#60;/p&#62;
&#60;p&#62;.long USART1_IRQHandler&#60;/p&#62;
&#60;p&#62;.long USART2_IRQHandler&#60;/p&#62;
&#60;p&#62;.long USART3_IRQHandler&#60;/p&#62;
&#60;p&#62;.long EXTI15_10_IRQHandler&#60;/p&#62;
&#60;p&#62;.long RTCAlarm_IRQHandler&#60;/p&#62;
&#60;p&#62;.long USBWakeUp_IRQHandler&#60;/p&#62;
&#60;p&#62;if you had enabled the SPI1 IRQ channel, you could define its interrupt by simply:&#60;/p&#62;
&#60;p&#62;void SPI1_IRQHandler() {&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;Of course, were working to wrap all this up into the programming API. In addition, some of these channels are already used by the library, for example the USART IRQ's and the systick, and the UsbLpIRQHandler
&#60;/p&#62;</description>
		</item>
		<item>
			<title>hadley on "Hello DAC"</title>
			<link>http://forums.leaflabs.com/topic.php?id=7#post-8</link>
			<pubDate>Sat, 03 Apr 2010 12:06:19 +0000</pubDate>
			<dc:creator>hadley</dc:creator>
			<guid isPermaLink="false">8@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;on Sun 10 of Jan., 2010 19:37 EST, by LarryP&#60;br /&#62;
Colin,&#60;/p&#62;
&#60;p&#62;Thanks for posting your progress, sketch, and the 'scope picture.&#60;br /&#62;
Eyeballing the 'scope photo, it looks like the Maple was running the sketch approx 9x faster. So, it's doing (around 2x) better than the ratio of the clock speeds (~4x, if your Arduino is running at 12 Mhz.)
&#60;/p&#62;</description>
		</item>
		<item>
			<title>hadley on "Hello DAC"</title>
			<link>http://forums.leaflabs.com/topic.php?id=7#post-7</link>
			<pubDate>Sat, 03 Apr 2010 12:05:36 +0000</pubDate>
			<dc:creator>hadley</dc:creator>
			<guid isPermaLink="false">7@http://forums.leaflabs.com/</guid>
			<description>&#60;p&#62;on Sun 10 of Jan., 2010 12:32 EST, by CollinMel&#60;/p&#62;
&#60;p&#62;Just got my Maple talking to an MCP4921 SPI DAC using the shiftOut function. As expected, the performance difference versus ATMega328 is dramatic. A side by side comparison of the outputs can be seen here -&#60;br /&#62;
&#60;a href=&#34;http://www.flickr.com/photos/collinmel/4263087422/&#34; rel=&#34;nofollow&#34;&#62;http://www.flickr.com/photos/collinmel/4263087422/&#60;/a&#62;&#60;/p&#62;
&#60;p&#62;Here's the basic sketch I used -&#60;/p&#62;
&#60;p&#62;////////////////////////////////////////////////////////////////////////////&#60;/p&#62;
&#60;p&#62;int csPin = 9;&#60;br /&#62;
int sckPin = 13;&#60;br /&#62;
int dataPin = 11;&#60;br /&#62;
int data;&#60;br /&#62;
int j;&#60;/p&#62;
&#60;p&#62;const byte sineTable[] = {&#60;br /&#62;
0x80, 0x83, 0x86, 0x89, 0x8D, 0x90, 0x93, 0x96, 0x99, 0x9C, 0x9F, 0xA2, 0xA5, 0xA8, 0xAB, 0xAE, 0xB1, 0xB4, 0xB7, 0xBA, 0xBD, 0xBF, 0xC2, 0xC5, 0xC7, 0xCA, 0xCD, 0xCF, 0xD1, 0xD4, 0xD6, 0xD9, 0xDB, 0xDD, 0xDF, 0xE1, 0xE3, 0xE5, 0xE7, 0xE9, 0xEB, 0xEC, 0xEE, 0xF0, 0xF1, 0xF3, 0xF4, 0xF5, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFC, 0xFD, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFE, 0xFD, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5, 0xF3, 0xF2, 0xF0, 0xEF, 0xED, 0xEC, 0xEA, 0xE8, 0xE6, 0xE4, 0xE2, 0xE0, 0xDE, 0xDC, 0xDA, 0xD7, 0xD5, 0xD3, 0xD0, 0xCE, 0xCB, 0xC9, 0xC6, 0xC3, 0xC1, 0xBE, 0xBB, 0xB8, 0xB5, 0xB3, 0xB0, 0xAD, 0xAA, 0xA7, 0xA4, 0xA1, 0x9E, 0x9B, 0x98, 0x94, 0x91, 0x8E, 0x8B, 0x88, 0x85, 0x82, 0x7E, 0x7B, 0x78, 0x75, 0x72, 0x6F, 0x6C, 0x69, 0x66, 0x63, 0x5F, 0x5C, 0x59, 0x56, 0x53, 0x50, 0x4D, 0x4A, 0x47, 0x44, 0x42, 0x3F, 0x3C, 0x39, 0x37, 0x35, 0x32, 0x30, 0x2D, 0x2B, 0x29, 0x26, 0x24, 0x22, 0x20, 0x1E, 0x1C, 0x1A, 0x18, 0x16, 0x14, 0x13, 0x11, 0x10, 0x0E, 0x0D, 0x0B, 0x0A, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x03, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x02, 0x02, 0x03, 0x04, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0B, 0x0C, 0x0D, 0x0F, 0x10, 0x12, 0x14, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1E, 0x21, 0x23, 0x25, 0x28, 0x2A, 0x2C, 0x2F, 0x31, 0x33, 0x36, 0x39, 0x3B, 0x3E, 0x41, 0x43, 0x46, 0x49, 0x4C, 0x4F, 0x51, 0x55, 0x58, 0x5B, 0x5E, 0x61, 0x64, 0x67, 0x6A, 0x6E, 0x70, 0x73, 0x77, 0x7A, 0x7D, 0x80&#60;br /&#62;
};&#60;/p&#62;
&#60;p&#62;void setup() {&#60;br /&#62;
pinMode(csPin, OUTPUT);&#60;br /&#62;
pinMode(sckPin, OUTPUT);&#60;br /&#62;
pinMode(dataPin, OUTPUT);&#60;br /&#62;
digitalWrite(csPin, HIGH);&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;void loop(){&#60;/p&#62;
&#60;p&#62;//step through sine table&#60;br /&#62;
for (int i=0;i&#38;gt; 8));&#60;/p&#62;
&#60;p&#62;//select dac&#60;br /&#62;
digitalWrite(csPin, LOW);&#60;/p&#62;
&#60;p&#62;// shift out lowbyte&#60;br /&#62;
shiftOut(dataPin, sckPin, MSBFIRST, data);&#60;/p&#62;
&#60;p&#62;//deselect dac&#60;br /&#62;
digitalWrite(csPin, HIGH);&#60;br /&#62;
}&#60;br /&#62;
}&#60;/p&#62;
&#60;p&#62;////////////////////////////////////////////////////////////////////////////&#60;/p&#62;
&#60;p&#62;Next up, I'll look into implementing an interrupt timer - anyone have suggestions on where to get started?
&#60;/p&#62;</description>
		</item>

	</channel>
</rss>
