มีท่านใดที่มี Raspberry pi 3 ไม่ได้ใช้ อยู่บนหิ้งดองไว้ อยากจะปล่อย ติดต่อได้ ครับ
ไลน์: ph_sarawut
โทร: o๘๖-๔๔๘-๘๕๖๖
ไลน์: ph_sarawut
โทร: o๘๖-๔๔๘-๘๕๖๖
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts Menu
Attiny2313bitField.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000058 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 00000058 000000cc 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .comment 00000011 00000000 00000000 000000cc 2**0
CONTENTS, READONLY
3 .debug_aranges 00000040 00000000 00000000 000000e0 2**3
CONTENTS, READONLY, DEBUGGING
4 .debug_info 000002f2 00000000 00000000 00000120 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_abbrev 00000112 00000000 00000000 00000412 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_line 0000021b 00000000 00000000 00000524 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_frame 00000024 00000000 00000000 00000740 2**2
CONTENTS, READONLY, DEBUGGING
8 .debug_str 00005a83 00000000 00000000 00000764 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_ranges 00000010 00000000 00000000 000061e7 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_macro 00001db8 00000000 00000000 000061f7 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end>
2: 17 c0 rjmp .+46 ; 0x32 <__bad_interrupt>
4: 16 c0 rjmp .+44 ; 0x32 <__bad_interrupt>
6: 15 c0 rjmp .+42 ; 0x32 <__bad_interrupt>
8: 14 c0 rjmp .+40 ; 0x32 <__bad_interrupt>
a: 13 c0 rjmp .+38 ; 0x32 <__bad_interrupt>
c: 12 c0 rjmp .+36 ; 0x32 <__bad_interrupt>
e: 11 c0 rjmp .+34 ; 0x32 <__bad_interrupt>
10: 10 c0 rjmp .+32 ; 0x32 <__bad_interrupt>
12: 0f c0 rjmp .+30 ; 0x32 <__bad_interrupt>
14: 0e c0 rjmp .+28 ; 0x32 <__bad_interrupt>
16: 0d c0 rjmp .+26 ; 0x32 <__bad_interrupt>
18: 0c c0 rjmp .+24 ; 0x32 <__bad_interrupt>
1a: 0b c0 rjmp .+22 ; 0x32 <__bad_interrupt>
1c: 0a c0 rjmp .+20 ; 0x32 <__bad_interrupt>
1e: 09 c0 rjmp .+18 ; 0x32 <__bad_interrupt>
20: 08 c0 rjmp .+16 ; 0x32 <__bad_interrupt>
22: 07 c0 rjmp .+14 ; 0x32 <__bad_interrupt>
24: 06 c0 rjmp .+12 ; 0x32 <__bad_interrupt>
00000026 <__ctors_end>:
26: 11 24 eor r1, r1
28: 1f be out 0x3f, r1 ; 63
2a: cf ed ldi r28, 0xDF ; 223
2c: cd bf out 0x3d, r28 ; 61
2e: 02 d0 rcall .+4 ; 0x34 <main>
30: 11 c0 rjmp .+34 ; 0x54 <_exit>
00000032 <__bad_interrupt>:
32: e6 cf rjmp .-52 ; 0x0 <__vectors>
00000034 <main>:
};
#define PORTB_BITS (*((volatile struct portb_reg *)0x38)) //Direct PORTB
int main(void)
{
DDRB_BITS.DDR0 = 1 ;
34: b8 9a sbi 0x17, 0 ; 23
while(1)
{
PORTB_BITS.B0 = ~PORTB_BITS.B0 ;
36: 88 b3 in r24, 0x18 ; 24
38: 80 ff sbrs r24, 0
3a: c0 9a sbi 0x18, 0 ; 24
3c: 80 fd sbrc r24, 0
3e: c0 98 cbi 0x18, 0 ; 24
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
40: 2f ef ldi r18, 0xFF ; 255
42: 84 e3 ldi r24, 0x34 ; 52
44: 9c e0 ldi r25, 0x0C ; 12
46: 21 50 subi r18, 0x01 ; 1
48: 80 40 sbci r24, 0x00 ; 0
4a: 90 40 sbci r25, 0x00 ; 0
4c: e1 f7 brne .-8 ; 0x46 <__SREG__+0x7>
4e: 00 c0 rjmp .+0 ; 0x50 <__SREG__+0x11>
50: 00 00 nop
52: f1 cf rjmp .-30 ; 0x36 <main+0x2>
00000054 <_exit>:
54: f8 94 cli
00000056 <__stop_program>:
56: ff cf rjmp .-2 ; 0x56 <__stop_program>
ATtiny2313FirstProgram.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000058 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 00000058 000000cc 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .comment 00000011 00000000 00000000 000000cc 2**0
CONTENTS, READONLY
3 .debug_aranges 00000020 00000000 00000000 000000e0 2**3
CONTENTS, READONLY, DEBUGGING
4 .debug_info 000000cd 00000000 00000000 00000100 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_abbrev 00000014 00000000 00000000 000001cd 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_line 0000005b 00000000 00000000 000001e1 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end>
2: 17 c0 rjmp .+46 ; 0x32 <__bad_interrupt>
4: 16 c0 rjmp .+44 ; 0x32 <__bad_interrupt>
6: 15 c0 rjmp .+42 ; 0x32 <__bad_interrupt>
8: 14 c0 rjmp .+40 ; 0x32 <__bad_interrupt>
a: 13 c0 rjmp .+38 ; 0x32 <__bad_interrupt>
c: 12 c0 rjmp .+36 ; 0x32 <__bad_interrupt>
e: 11 c0 rjmp .+34 ; 0x32 <__bad_interrupt>
10: 10 c0 rjmp .+32 ; 0x32 <__bad_interrupt>
12: 0f c0 rjmp .+30 ; 0x32 <__bad_interrupt>
14: 0e c0 rjmp .+28 ; 0x32 <__bad_interrupt>
16: 0d c0 rjmp .+26 ; 0x32 <__bad_interrupt>
18: 0c c0 rjmp .+24 ; 0x32 <__bad_interrupt>
1a: 0b c0 rjmp .+22 ; 0x32 <__bad_interrupt>
1c: 0a c0 rjmp .+20 ; 0x32 <__bad_interrupt>
1e: 09 c0 rjmp .+18 ; 0x32 <__bad_interrupt>
20: 08 c0 rjmp .+16 ; 0x32 <__bad_interrupt>
22: 07 c0 rjmp .+14 ; 0x32 <__bad_interrupt>
24: 06 c0 rjmp .+12 ; 0x32 <__bad_interrupt>
00000026 <__ctors_end>:
26: 11 24 eor r1, r1
28: 1f be out 0x3f, r1 ; 63
2a: cf ed ldi r28, 0xDF ; 223
2c: cd bf out 0x3d, r28 ; 61
2e: 02 d0 rcall .+4 ; 0x34 <main>
30: 11 c0 rjmp .+34 ; 0x54 <_exit>
00000032 <__bad_interrupt>:
32: e6 cf rjmp .-52 ; 0x0 <__vectors>
00000034 <main>:
34: 81 e0 ldi r24, 0x01 ; 1
36: 87 bb out 0x17, r24 ; 23
38: 91 e0 ldi r25, 0x01 ; 1
3a: 88 b3 in r24, 0x18 ; 24
3c: 89 27 eor r24, r25
3e: 88 bb out 0x18, r24 ; 24
40: 2f ef ldi r18, 0xFF ; 255
42: 34 e3 ldi r19, 0x34 ; 52
44: 8c e0 ldi r24, 0x0C ; 12
46: 21 50 subi r18, 0x01 ; 1
48: 30 40 sbci r19, 0x00 ; 0
4a: 80 40 sbci r24, 0x00 ; 0
4c: e1 f7 brne .-8 ; 0x46 <__SREG__+0x7>
4e: 00 c0 rjmp .+0 ; 0x50 <__SREG__+0x11>
50: 00 00 nop
52: f3 cf rjmp .-26 ; 0x3a <main+0x6>
00000054 <_exit>:
54: f8 94 cli
00000056 <__stop_program>:
56: ff cf rjmp .-2 ; 0x56 <__stop_program>
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
struct ddrb_reg {
unsigned char DDR0: 1;
unsigned char DDR1: 1;
unsigned char DDR2: 1;
unsigned char DDR3: 1;
unsigned char DDR4: 1;
unsigned char DDR5: 1;
unsigned char DDR6: 1;
unsigned char DDR7: 1;
};
#define DDRB_BITS (*((volatile struct ddrb_reg *)0x37)) //Direct DDRB
struct portb_reg {
unsigned char B0: 1;
unsigned char B1: 1;
unsigned char B2: 1;
unsigned char B3: 1;
unsigned char B4: 1;
unsigned char B5: 1;
unsigned char B6: 1;
unsigned char B7: 1;
};
#define PORTB_BITS (*((volatile struct portb_reg *)0x38)) //Direct PORTB
int main(void)
{
DDRB_BITS.DDR0 = 1 ; // ให้ PortB บิต 0 เป็น เอาท์พุท
while(1)
{
PORTB_BITS.B0 = ~PORTB_BITS.B0 ;
_delay_ms(500);
}
return 0 ;
}
Quote from: orion on August 12, 2015, 03:59:02 PMขอบคุณที่แนะนำเบอร์นี้ครับ ผมเพิ่งรู้จักจริงๆ
เคยใช้พวก ตระกูล HCNR ของ AVAGO ครับ
http://www.digikey.com/catalog/en/partgroup/hcnr-200-201-series/19027
เป็น Analog Optoisolator
วงจรการต่อดูจาก Datasheet นะครับ
ลืมหมดแล้ว ไม่ได้ใช้งานนานแล้วครับ
Quote from: RoLRoR on August 12, 2015, 05:45:27 PMขอบคุณสำหรับไอเดียนี้ เป็นไอเดียดีเลยครับ ไม่เกิด loss จากการ coupling แน่นอน
อีกวิธีใช้ IC-ADC เช่น MCP32xx เพิ่มแหล่งจ่าย Isolate แยกให้ IC-ADC
และ MCU ติดต่อ IC-ADC โดย SPI/I2C ผ่าน OPTO ก็ได้ครับ
Quote from: whang07 on July 23, 2015, 06:22:43 PM
เล่มนี้ไม่แจกแล้วหรือครับผมอยากได้ครับ