VOOZH about

URL: https://qiita.com/ohisama@github/items/883dc87506dcb60080a7

⇱ wemosでアセンブラ #Wemos - Qiita


👁 Image
1

Go to list of users who liked

0

Share on X(Twitter)

Share on Facebook

Add to Hatena Bookmark

More than 5 years have passed since last update.

@ohisama@github

wemosでアセンブラ

1
Posted at

概要

wemos d1でアセンブラやってみた。

サンプルコード

extern "C" {
	#include "ets_sys.h"
	#include "osapi.h"
	#include "gpio.h"
	#include "user_interface.h"
}
byte YELLOW_pin = 4;
byte BLUE_pin = 12;
void toggle_blue_yellow__asm()
// yellow pin = 4 => bit mask = 16d, [0...0]10000 (32 bit)
// blue pin = 12 => bit mask = 4096d, [0...0]1 0000 0000 0000 (32 bit)
// PIN_OUT_SET : 0x60000304
// PIN_OUT_CLEAR : 0x60000308
//
{
	asm volatile (
	"movi a2, 0x60000304;" // SET Address in a2
	"movi a3, 0x60000308;" // CLEAR Address in a3
	"movi a4, 16;" // yellow pin bit mask in a4
	"movi a5, 4096;" // blue pin bit mask in a5
	"movi a6, 12;" // delay loop counter
	"s32i a4, a3, 0;" // set yellow to LOW
	"memw;"
	"s32i a5, a2, 0;" // set blue to HIGH
	"memw;"
	"label1:"
	"addi a6, a6, -1;"
	"NOP;"
	"NOP;"
	"NOP;"
	"NOP;"
	"bnez a6, label1;"
	"movi a6, 12;" // delay loop counter
	"s32i a4, a2, 0;" // set yellow to HIGH
	"memw;"
	"s32i a5, a3, 0;" // set blue to LOW
	"memw;"
	"label2:"
	"addi a6, a6, -1;"
	"NOP;"
	"NOP;"
	"NOP;"
	"NOP;"
	"bnez a6, label2;"
	"movi a6, 12;" // delay loop counter
	"s32i a4, a3, 0;" // set yellow to LOW
	"memw;"
	"s32i a5, a3, 0;" // set blue to LOW
	"memw;"
	"label3:"
	"addi a6, a6, -1;"
	"NOP;"
	"NOP;"
	"NOP;"
	"NOP;"
	"bnez a6, label3;"
	"movi a6, 12;" // delay loop counter
	"s32i a4, a2, 0;" // set yellow to HIGH
	"memw;"
	"s32i a5, a2, 0;" // set blue to HIGH
	"memw;"
	"label4:"
	"addi a6, a6, -1;"
	"NOP;"
	"NOP;"
	"NOP;"
	"NOP;"
	"bnez a6, label4;"
	::
	: "a2", "a3", "a4", "a5", "a6", "memory"
	);
}
void setup()
{
	pinMode(YELLOW_pin, OUTPUT_OPEN_DRAIN);
	pinMode(BLUE_pin, OUTPUT_OPEN_DRAIN);
}
void loop()
{
	delay(10);
	toggle_blue_yellow__asm();
}




以上。

1

Go to list of users who liked

0
0

Go to list of comments

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1

Go to list of users who liked

0