Ви не увійшли.
ситуация такова
бегущий огонек из лампочек с задержкой в пол секунды на прямую от ардуино сделать получилось
а как провернуть тот же номер но через сдвинутый резистор?
с выходами вроде разобрался а как переключать выходы для лампочек?
Неактивний
А че с ним бороться то? Все поборено до нас. http://avrproject.ru/publ/kak_podkljuch … 5/2-1-0-44
Неактивний
да, но пишут всякое на непонятном языке
русский никак выучить не могут, двоешники,
например
place program in 'CODE' segment
так и сказали бы что код не в ОЗУ (, безобразие
#include "msp430g2231.h" ; #We define the driven mcu yu
; place program in 'CODE' segment
#defined E_PIN BIT5;20h;00100000b;
#define C_PIN 80h;10000000b;BIT7
#define D_PIN 40h;01000000b;BIT6
#define R_PIN 10h; BIT4
;2231 entegresisin 128bit ram memory has a memory that we have
;3 regestirisine dedicating them to send the data in the shift bit kullanıcaz.
Date1 equ 0x0200;R5 ;This variable shift data sent regestiriye
;Reset command to the left of the data is kept, and this variable
; printed by sliding fişft regestiriye.
TRUTH Equ 0x0210;#define VERI 0x0210;R9 ;variable data is sent to the shift regestiriye
; represents the desired information.
CNT1 Equ 0x0202; #define CNT1 0x0202;regestiriye shift of data sent 16 bit
;This variable is genişliğindedi 16 information loaded in the number of DATA1
;16 yazdırılmasdını time that all the bits shifted to the left variable.
; External date1
; External CNT1
;DATA1 DS 1
;CNT1 DS 2
NAME Mainloop ; module name
; make the main label vissible
RSEG CSTACK ; pre-declaration of segment
RSEG CODE
init: MOV #SFE(CSTACK), SP ; set up stack
; MOV.W #5A00H+0011000B,&WDTCTL ; watchdog timer 1000ms Set
.W # WDT_ADLY_250,&WDTCTL;WDT, use WDT_ADLY_1000 1000MS CREATES A DELAY
.B #10001B,IE1 ;EDN RESOURCES CONTROL GENERAL CUTTING IE1 REGESTİRİ REGESTİRİSİ
; FOR THE FORMATION AND WDTIE flags establishing a WDT interrupt is BURDAN NMIIE
.b #11110111b,P1DIR ; P1 portunun 0 and 6 Introduction to the rest of the bits set to output
.b #00001000b,P1IE ;CUT WHICH PORT pin P1 Blier OLUŞACAÐINI
.b #00001000b,P1IES ; DETERMINED THAT THERE IS RISING margin of the cutting margin of PER.
mov.b #11100001b,P1OUT
mov.b #00000001b,REAL ;Data RAM Area 1 Load the value of the amount of data to be sent to the SHIFT Regestirriye.
mov.b #00000001b,DATA1 ;Ram Data1 is defined in 2 The data in this field in order to be printed değişkenimizx shift the shift is used regestiriye.
ONE ;Etkinleşirir General interput resources.
call #SHIFTREG ;this is the first data DATA1 variable gönderrir shift regestiriye 1 value.
;and the program tries to shift the first regestirinin 0. bit turns on the LED.
Mainloop ;Ana program bloğu
;enters an infinite loop until an interrupt occurs herhangibi.
SHIFTREG ;74595 print send bits of the program regestiri
;Regestiriyi resetle( Reset all bits)
mov.w # 10h,CNT1 ;Counter regestirisin 16 Upload the number of
;Scroll the left deişkeninideki value DATA1.Variable shift operation 16. Status bit is always regestirisinin C (Caeryy)bit of the indicated.
; according to the value of this property have it using the C floğındaki 74hc595 Data pin by setting the value of the bits in the printing of entegresindeki sağlıyacağız.
jc SETPIN ;Set the value of the C bit in SR(1) ise SETPIN etiketine git
;Reset the value of the C bit in SR(0) To label the CLRP
;74595 integrated circuit data(DS 14 nolu pini) Set the value of(1) yap.
UP.B # 40h,&P1OUT
jmp CLOCK
CLRPIN BIC.B # 40h,&P1OUT ;74595 integrated circuit data(DS 14 nolu pini) reset the value of the(0) yap.
CLOCK ; pinindeki value palsy sending data shift clock prints regestiriye.
; Slide the left bits of process data clock ports(ds 14.)pinindeki value 0. bite printing 8bit sends data ports.
BIC.B # 80h,&P1OUT ;clock pinini resetle
NOP ;a wait cycle
.B # 80h,&P1OUT ;Set clock pinini et.
December CNT1 ;The number of data göndrilen 16 or the process reaches the end.
jnz SRG ;counting 16 from the top is smaller than.
E_ ;sending data to the data that is sent over 74595 Visible to print and process integration of the ports
.B # 20h,&P1OUT
.B # 20h,&P1OUT
;Sending data over prosödürü. Back to where you had to work.
Reset ; Variable Data 16 bit ama 74595 entegresi 8 bit 8 If the data has exceeded the top bit.
# 81h mov,R8 ;r8 variable 129 Load the value of the
.w VERI,R8 ;Data değişkeniniden 129 is the value of the.
s S1 ;REAL<129 making process
,REAL ;REAL>129 variable in the DATA 1 Load the value of the
;74595 entegresinini ports are reset and the reset pin of the chip, the value of a pulse and resets göndrir.
BIC.B # 10h,&P1OUT
.B # 10h,&P1OUT
;WDT interrupt occurs, interrupt button is required for the formation of(IE1 Reg. 0. be) Change the status value of a bit tersleyerek WDT interrupt (OPEN/KaPA)
xor.b # 1h,IE1 ;WDT interrupt reserved for general cutting bit in the status of the settings required for the tesrle Regestirinin
.B #WDTIFG,IFG1 ;ileilgili regestirinin WDT Reset bit indicates interrupt sources
.B #00001000b,P1IFG ;Reset button interrupt bit about what buttons olluştuğunu regestirirni göstren.
ONE ;Enable global interrupt flag (herhanigbi detect an interrupt occurs)
NETWORKS ;and you had to do to keep from cutting operations.
WDT_KES ;WDT interrupt occurs, the label on the branch.
CALL #SIFIRLA ;Check mailed veriy 128 Reset is greater than
.b DATA,DATA1 ; 74595 provide data data1 değişkeinnie horse and shift regestiriye göndrilecek göndrilmesini
;Write data to shift regestiriye.
RLA DATA ;Değişkeinnideki data bits shift left.in order to burn.
BIC.B # 1H,IFG1 ;WHICH OF THE KESMENİNİ the source of IFG1 rEGESTİRİDİR REGESTİRİSİ.
;WDTIFG (0 Be) Cutting the source of WDT SHOWS. CUTTING THE FLAG OLUŞTUÐUNDA 1 WDT RESET TO ESTABLISH THIS is the new banner and GERKLİDİR.
ONE ; (GIE) GENERAL CUTTING activates BAYRAÐINI
;CLEAR CUTTING GIE BAYRAÐINI (0 DOES)
ORG WDT_VECTOR;0FFFEh WDT interrupt vector
; This label occurs BRANCH CUTTER
;0FFFEh; When the RESET OR THE LABEL FIRST BRANCH is reached ENERCİ
;0xFFE4;interrupt vector buttons
;interrupt occurs, go cut tag buttons
Неактивний
интересует Сдвиговый регистр 74HC595N
у меня в наборе именно этот интересно как его запустить?
вроде уже поборол но возникла другая проблемма
всем персональное здрасте
01
int dataPin=12;
02
int clockPin=11;
03
int latchPin=13;
04
05
void setup(){
06
pinMode(dataPin,OUTPUT);
07
pinMode(clockPin,OUTPUT);
08
pinMode(latchPin.OUTPUT);
09
}
10
void loop(){
11
vhod();
12
obrabotka();
13
vihod();
14
}
15
16
void vhod(){
17
//тут будет получать данные пока с этим ясно
18
}
19
20
void obrabotka(){
21
/* тут надо код который орабатывает переменную 0 111111 и в зависимости от того какой сигнал
22
получен на входе такой сигнал должен быть и на выходе регистра
23
*/
24
}
25
26
void
27
void vihod(){
28
digitalWrite(latchPin,LOW);
29
shiftOut(dataPin,clockPin,MSBFIRST, 0b11111111); //вот интересует слопо 0b11111111
30
digitalWrite(latcPin,HIGH);
31
}
ситуация такова есть 8 термометров и 8 лампочек соответственно каждому термометру
в зависимости от того превышает ли температура допустимое значение лампочка горит или выключена
возник вопрос как передать данные в функцию shiftOut() вернее как отредактировать переменную 0b11111111 ?
Неактивний
Если вопрос в том как изменить отдельные биты, то легко сделать через логические операторы И и ИЛИ.
а как это провернуть?
есть идея сначала в строку записать нули и единицы но как их потом передать функции для выполнения?
там таки будет несовпадение типов
Неактивний
dongan, а почитать другие темы, может кто что "умное" написал?
например
http://forum.arduino.ua/viewtopic.php?id=418
#define SETBIT(x,b) x|=(b)
SETBIT (var, (BIT(1)));
SETBIT (var, (BIT(2)));
SETBIT (var, (BIT(6)));
CLEARBIT (var, (BIT(6)));
add " " )
Остання редакція NoName (2016-04-06 16:53:35)
Неактивний