如何设置P2的这个大数据分析培训机构在F2中存在

读万卷书,行万里路,胸中脱去尘浊,自然丘壑内营,立成鄄鄂!
文件锁和Python多进程的使用
问题:进程P1中有一个线程T1,T1执行的函数为f1;进程P2中有一个线程T2,T2执行的函数为f2。
当f1和f2都需要对同一个资源进行操作时,比如同时对文件file1进行操作。为了线程安全,则当f1在操作(读或写文件file1)时,不允许f2操作(读或写文件file1)。反之,当f2在操作file1时,不允许f1操作file1。即f1和f2不能同时操作file1。
解决方法:
可以采用文件锁(这里文件锁的意思为将对资源file1的访问状态保存在文件fs.txt里,即通过文件fs.txt来加锁)的方式,对文件file1轮流交替的操作:即f1操作完file1之后,f2开始操作file1;当f2操作完file1之后,f1开始操作file1,这样交替下去。
可以设置4种状态:00、11、22、33。将这4种状态保存在文件‘fs.txt’里,因为这样进程P1和P2都可以操作文件fs.txt(解决了进程间相互通信的问题)。4种状态分别表示如下:
00:表示f1可以操作资源file1了,同时也表示f2操作完毕file1;
11:表示f1正在操作资源file1;
22:表示f1操作完毕file1,同时也表示f2可以操作file1了;
33:表示f2正在操作file1。
访问流程图如下所示:
我们可以看到,函数f1的状态顺序为'00' -&'11' -& '22';函数f2的状态顺序为'22' -& '33' -& '00'。
形成了如下的环形交替访问:
2.Python中多进程的使用
下面将python中多进程的使用和文件锁进行结合,给出一个简单的demo。
公共函数(读文件、写文件)定义在文件GlobalFunc.py中:
# encoding: utf-8
#根据文件名,读取文件内容
def read_file(filename):
all_the_text = ''
fo = open(filename)
all_the_text = fo.read()
fo.close()
return all_the_text
#根据文件名和内容,写入文件。成功返回1
def write_file(filename, filecontent):
status = 0
fo = open(filename, 'wb+')
fo.write(filecontent)
status = 1
fo.close()
return status
进程P2的文件Process2.py定义如下:
# encoding: utf-8
from threading import Thread
from time import sleep
from GlobalFunc import read_file,write_file
#定义线程T2的执行函数
fs = read_file('fs.txt')
print '\nP2 want to visit,now fs:',fs
if '22' == fs:
#f1操作完file1,f2可以开始操作了
write_file('fs.txt','33') #表明f2正在操作file1
print 'P2 is visiting file1...'
write_file('fs.txt','00')
#定义线程T2
while True:
def main():
print '\nlauch process:P2...'
#启动线程T2
Thread(target = T2,args=()).start()
while True:
if __name__ == '__main__':
进程P1的文件Process.py定义如下:
# encoding: utf-8
from threading import Thread
from time import sleep
from multiprocessing import Process
from GlobalFunc import read_file,write_file
#线程T1的执行函数
fs = read_file('fs.txt')
print '\nP1 want to visit,now fs:',fs
assert('00' == fs)
if '00' == fs:
#f2操作完file1,f1可以开始操作了
write_file('fs.txt','11') #表明f1正在操作file1
print 'P1 is visiting file1...'
write_file('fs.txt','22')
while True:
if __name__ == '__main__':
print 'lauch process:P1...'
#初始化'fs.txt'
write_file('fs.txt','00')
#进程P2的定义
from Process2 import main as P2_main
P2 = Process(target = P2_main, args=())
P2.start()
#启动线程T1
Thread(target = T1,args=()).start()
while True:
进程P2单独定义成一个文件'Process2.py'。通过进程P1来调用启动进程P2,进程P1中有一个线程T1,进程P2中有一个线程T2,T1和T2都对文件file1进行操作。我们通过'fs.txt'这个文件设置文件锁,将T1和T2的当前操作状态保存在fs.txt中。
注:我们通过文件锁,解决了进程之间互斥操作同一个资源的问题。如果是同一个线程之间互斥操作同一个资源的问题,我们只需要定义个全局变量即可,我们没有必要使用文件锁,因为文件锁需要访问磁盘。
没有更多推荐了,数据流程图如何做_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
数据流程图如何做
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩17页未读,
定制HR最喜欢的简历
你可能喜欢1688.com,阿里巴巴打造的全球最大的采购批发平台
1688/淘宝会员(仅限会员名)请在此登录
cbulogin.center.et2Server is OK百度题库_智能考试题库_让每个人都能高效提分的智能题库
职业资格类
职业资格类
百度题库旨在为考生提供高效的智能备考服务,全面覆盖中小学财会类、建筑工程、职业资格、医卫类、计算机类等领域。拥有优质丰富的学习资料和备考全阶段的高效服务,助您不断前行!
京ICP证号&&
京网文[3号&&
Copyright (C) 2018 Baidu后使用快捷导航没有帐号?
请完成以下验证码
查看: 6933|回复: 13
关于MSP430F2XX系列ADC10的设置问题
在线时间28 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
假设用外部电压作为参考电压并且要采集A0-A2,A3为VREF-,A4为VeREF+则:
ADC10CTL0&&=&&SREF_7 +。。。+;
那么模拟输入使能ADC10AE0是不是应该写为:
ADC10AE0 = 0x1F
在线时间151 小时
威望4250分
芯币2342枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4250, 距离下一级还需 1750 积分
五彩晶圆(中级), 积分 4250, 距离下一级还需 1750 积分
使能A0采样正确的代码应该是
ADC10AE0 = 0x01;
请参见Datasheet关于ADC10AE0的描述:
ADC10 analog enable. These bits enable the corresponding pin for analog
input. BIT0 corresponds to A0, BIT1 corresponds to A1, etc.
0 Analog input disabled
1 Analog input enabled、
在线时间28 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
回复 沙发 Triton.zhang 的帖子
谢谢,:rose: :rose:
您说的这个我知道,可能我没表达明白,
这么说吧,P2.0-P2.7分别是A0-A7,现在用外部参考电压,也就是P2.3和P2.4,模拟使能是不是也要赋值?
上面说的A0-A2我也要用。这样一来我的ADC10AE0是不是应该等于0x1F?
还有一个问题,INCHx要不要对外部参考VeREF+/-进行设置呢?还是说只要设置好SREF_7,外部参考电压就无需转换了?
在线时间142 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 166, 距离下一级还需 34 积分
一粒金砂(中级), 积分 166, 距离下一级还需 34 积分
是如你所说的吧 ,还有了 就是P2SEL也要选择0X1F 第二功能! INCHx是选择要测量信号的通道吧!SREF_7我搜了下没有这个寄存器!
这个真不用&
在线时间28 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
回复 4楼 shirl 的帖子
在ADC10CTL0 中的后三位SREF0,1,2.不是寄存器。
灰常谢谢!试试看
在线时间151 小时
威望4250分
芯币2342枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4250, 距离下一级还需 1750 积分
五彩晶圆(中级), 积分 4250, 距离下一级还需 1750 积分
纠正下楼主的一个错误.1.& MSP430F2XX系列的P2端口和ADC的端口有复用,一旦设置ADC10AE0.Y为高,就会切换该管脚为模拟输入,而不管P2SEL.x是什么值。
2. MSP430的参考可以由内部产生,也可以用外部的参考,设置 SREF_7就可以使能外部的正负参考.
3. p2.0-p2.7对应A0-A7的输入和参考。如果你既要a0-a2,又要用外部参考,就需要设置ADC10AE0 = 0x1F;楼主下次遇到这类问题可以参见MSP430的数据手册,以P2.3为例:
MSP430jicunqi.JPG (23.62 KB, 下载次数: 0)
20:57 上传
表中说得很清楚.
3. MCU虽然支持很多ADC采样通道,但实际上内部只有一个ADC模块,所以在ADC采样前,你需要选择是采样那个ADC的通道。这个由INCHx来完成。
4. 最后总结一下,如果楼主要使用外部参考来采样ADC,可以参见如下操作流程:
&& 1) 切换管脚的模拟功能,包括ADC的输入通道和参考对应的管脚
&& 2)使能外部参考,通过配置SREF来实现
 3)& ADC采样前通过设置INCHx来确定具体采样某个端口
Triton.zhang
在线时间28 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
回复 6楼 Triton.zhang 的帖子
说的很好!强烈赞成!加QQ了,希望同意哈!
在线时间2675 小时
威望6090分
芯币6650枚
E金币111枚
TA的帖子TA的资源
五彩晶圆(高级), 积分 6090, 距离下一级还需 3910 积分
五彩晶圆(高级), 积分 6090, 距离下一级还需 3910 积分
勤学苦练好同志,乐于助人活同志!
在线时间1 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
一粒金砂(中级), 积分 40, 距离下一级还需 160 积分
楼主,DS看的很细心啊,其实还可以采用 MSP430F2XX ADC10的DTC(数据传输控制)模块,当序列转换启动时,可以将采样值自动存入所需要的地址中(数组),具体可参考TI例程.
在线时间151 小时
威望4250分
芯币2342枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 4250, 距离下一级还需 1750 积分
五彩晶圆(中级), 积分 4250, 距离下一级还需 1750 积分
给一个DTU操作的例程给你参考
//******************************************************************************
//&&MSP430F21x2 Demo - ADC10, DTC Sample A0 64x, 1.5V, Repeat Single, DCO
//&&Description: Use DTC to sample A0 64 times with reference to internal 1.5v.
//&&Vref Software writes to ADC10SC to trigger sample burst. In Mainloop MSP430
//&&waits in LPM0 to save power until ADC10 conversion complete, ADC10_ISR(DTC)
//&&will force exit from LPM0 in Mainloop on reti. ADC10 internal
//&&oscillator times sample period (16x) and conversion (13x). DTC transfers
//&&conversion code to RAM 200h - 280h. P1.0 set at start of conversion burst,
//&&reset on completion.
//& && && && && & MSP430F21x2
//& && && && & -----------------
//& && && &/|\|& && && && &&&XIN|-
//& && && & | |& && && && && &&&|
//& && && & --|RST& && && & XOUT|-
//& && && && &|& && && && && &&&|
//& && &&&&---|P2.0/A0& && &P1.0|--&LED
//&&A. Dannenberg
//&&Texas Instruments Inc.
//&&December 2007
//&&Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.41A
//******************************************************************************
#include &msp430x21x2.h&
void main(void)
&&WDTCTL = WDTPW + WDTHOLD;& && && && && &&&// Stop WDT
&&ADC10CTL1 = CONSEQ_2;& && && && && && && &// Repeat single channel
&&ADC10CTL0 = SREF_1 + ADC10SHT_2 + MSC + REFON + ADC10ON + ADC10IE;
&&TACCR0 = 30;& && && && && && && && && && &// Delay to allow Ref to settle
&&TACCTL0 |= CCIE;& && && && && && && && &&&// Compare-mode interrupt
&&TACTL = TASSEL_2 + MC_1;& && && && && && &// TACLK = SMCLK, Up mode
&&__bis_SR_register(CPUOFF + GIE);& && && & // LPM0, TA0_ISR will force exit
&&TACCTL0 &= ~CCIE;& && && && && && && && & // Disable timer Interrupt
&&ADC10DTC1 = 0x40;& && && && && && && && & // 64 conversions
&&ADC10AE0 |= 0x01;& && && && && && && && & // P2.0 ADC option select
&&P1DIR |= 0x01;& && && && && && && && && & // Set P1.0 output
&&for (;;)
& & ADC10CTL0 &= ~ENC;
& & while (ADC10CTL1 & BUSY);& && && && && &// Wait if ADC10 core is active
& & ADC10SA = 0x200;& && && && && && && && &// Data buffer start
& & P1OUT |= 0x01;& && && && && && && && &&&// Set P1.0 LED on
& & ADC10CTL0 |= ENC + ADC10SC;& && && && & // Sampling and conversion start
& & __bis_SR_register(CPUOFF + GIE);& && &&&// LPM0, ADC10_ISR will force exit
& & P1OUT &= ~0x01;& && && && && && && && & // Clear P1.0 LED off
// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
&&__bic_SR_register_on_exit(CPUOFF);& && &&&// Clear CPUOFF bit from 0(SR)
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TA0_ISR(void)
&&TACTL = 0;& && && && && && && && && && &&&// Clear Timer_A control registers
&&__bic_SR_register_on_exit(CPUOFF);& && &&&// Clear CPUOFF bit from 0(SR)
在线时间28 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
回复 9楼 Aaron-meng 的帖子
我也很想用DTC模块啊,就是ADC10SA=0x200之后,数据处理和清除都不知道如何操作。
在线时间28 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
一粒金砂(中级), 积分 80, 距离下一级还需 120 积分
回复 10楼 Triton.zhang 的帖子
这个P2SEL 不设置不知道可不可以,但是我设置了是可以的。
在线时间53 小时
芯币2630枚
TA的帖子TA的资源
一粒金砂(中级), 积分 146, 距离下一级还需 54 积分
一粒金砂(中级), 积分 146, 距离下一级还需 54 积分
回复 4楼 shirl 的帖子
这个真不用
在线时间53 小时
芯币2630枚
TA的帖子TA的资源
一粒金砂(中级), 积分 146, 距离下一级还需 54 积分
一粒金砂(中级), 积分 146, 距离下一级还需 54 积分
回复 6楼 Triton.zhang 的帖子
EEWORLD 官方微信
Powered by

我要回帖

更多关于 数据分析培训课程 的文章

 

随机推荐