diff --git a/examples/blink/.vscode/launch.json b/examples/blink/.vscode/launch.json
new file mode 100644
index 0000000000000000000000000000000000000000..daf0b515adfa0bbf74d743499abafb8cb48dab64
--- /dev/null
+++ b/examples/blink/.vscode/launch.json
@@ -0,0 +1,25 @@
+{
+	"configurations": [
+	{
+		"name": "GDB debug - custom",
+		"type": "cppdbg",
+		"request": "launch",
+		"program": "blink.elf",
+		"args": [],
+		"stopAtEntry": true,
+		"cwd": "${workspaceFolder}",
+		"environment": [],
+		"externalConsole": false,
+		"MIMode": "gdb",
+		"setupCommands": [
+		{
+			"description": "Enable pretty-printing for gdb",
+			"text": "-enable-pretty-printing",
+			"ignoreFailures": true
+		}
+		],
+		"miDebuggerPath": "/usr/bin/gdb-multiarch",
+		"miDebuggerServerAddress": "127.0.0.1:2000"
+	}
+	]
+}
diff --git a/examples/blink/.vscode/settings.json b/examples/blink/.vscode/settings.json
new file mode 100644
index 0000000000000000000000000000000000000000..79b30b8432213edaa2ffffd7b366b7cb61bf8240
--- /dev/null
+++ b/examples/blink/.vscode/settings.json
@@ -0,0 +1,12 @@
+{
+    "cmake.configureOnOpen": false,
+    "makefile.launchConfigurations": [
+        {
+            "cwd": "/home/cnlohr/git/ch32v003fun/examples/blink",
+            "sbinaryPath": "/home/cnlohr/git/ch32v003fun/examples/blink/blink.elf",
+            "binaryArgs": []
+        }
+    ],
+    "editor.insertSpaces": false,
+    "editor.tabSize": 4
+}
diff --git a/examples/blink/blink.bin b/examples/blink/blink.bin
index f50ebcf3c6cb395659920e025e28b1f9b82cb9d9..cd9973989add95d2e43f0ad61d045a2bd32d14e3 100755
Binary files a/examples/blink/blink.bin and b/examples/blink/blink.bin differ
diff --git a/examples/blink/blink.c b/examples/blink/blink.c
index 24b767ddff037dda9d667588adeaaebec0f696d0..4646259b1352778b1a5985f335614ab3e91e477d 100644
--- a/examples/blink/blink.c
+++ b/examples/blink/blink.c
@@ -6,7 +6,8 @@
 
 #define APB_CLOCK SYSTEM_CORE_CLOCK
 
-uint32_t count;
+volatile uint32_t count;
+
 int main()
 {
 	SystemInit48HSI();
@@ -26,8 +27,6 @@ int main()
 	GPIOC->CFGLR &= ~(0xf<<(4*0));
 	GPIOC->CFGLR |= (GPIO_Speed_10MHz | GPIO_CNF_OUT_PP)<<(4*0);
 
-	count = &count;
-
 	while(1)
 	{
 		GPIOD->BSHR = 1 | (1<<4);	 // Turn on GPIOs
@@ -35,8 +34,9 @@ int main()
 		Delay_Ms( 250 );
 		GPIOD->BSHR = (1<<16) | (1<<(16+4)); // Turn off GPIODs
 		GPIOC->BSHR = (1<<16);
-		Delay_Ms( 250 );
+		Delay_Ms( count );
 		count++;
+		if( count > 250 ) count = 0;
 	}
 }