คำถามติดแท็ก state-machines

8
ทำไมผลผลิตขององค์ประกอบที่เป็นรัฐมักจะตั้งชื่อ Q
ในแผนภาพวงจรลอจิกฉันได้เห็นอนุสัญญาต่าง ๆ สำหรับการตั้งชื่ออินพุตและเอาต์พุตของประตูลอจิกและวงจร combinatorial แต่องค์ประกอบ stateful เช่นสลักและ flip-flop มักจะมี "รัฐ" ของพวกเขาเรียกว่า Q. ฉันสงสัยว่ามีการเชื่อมต่อกับนามธรรมจำกัด -State เครื่องจากวิชาวิทยาการคอมพิวเตอร์ที่ "รัฐ" มักจะถูกตั้งข้อสังเกต Q เช่นกัน (ดังนั้นฉันถาม พวกเขาด้วย :-) แต่ทำไมผู้คนถึงเลือกจดหมายฉบับนี้?

11
คำถามสัมภาษณ์ VHDL - ตรวจสอบว่าตัวเลขสามารถหารด้วย 5 ได้โดยไม่เหลือ
ฉันเห็นคำถามสัมภาษณ์ที่ดีสำหรับ VHDL - สร้างระบบที่ได้รับตัวเลขและตรวจพบว่าสามารถหารด้วย 5 ได้โดยไม่เหลือ ฉันพยายามที่จะแก้ปัญหาด้วยเครื่องสถานะ (ฉันคิดว่าพวกเขาไม่ต้องการให้คุณใช้modหรือrem ) และในขณะที่ฉันประสบความสำเร็จครั้งแรก (ตัวเลขเช่น 5, 10, 15, และตัวเลขเช่น 20, 40, 80 ใช้ได้ ) ตัวเลขอื่น ๆ เช่น 130, 75 และอื่น ๆ ล้มเหลวสำหรับฉัน ฉันจะแสดงเครื่องสถานะของฉัน แต่มันเป็นระเบียบสมบูรณ์ (ไม่ใช่รหัสมันเป็นรูปวาด) และเหมือนที่ฉันพูดไม่ทำงาน โดยพื้นฐานแล้วสิ่งที่ฉันพยายามจะทำคือเขียนเลขฐานสองที่หารด้วย 5 ได้และสร้างเครื่องสถานะที่เหมาะกับพวกเขา ฉันจะดีใจถ้าคุณสามารถแสดงให้ฉันเห็นวิธีการแก้ปัญหานี้และวิธีคิดเมื่อเผชิญหน้ากับสิ่งนี้ ขอขอบคุณ!

6
โปรโตคอลการ จำกัด / การซิงโครไนซ์เทคนิคแบบอนุกรม
เนื่องจากการสื่อสารแบบซีเรียลแบบอะซิงโครนัสแพร่กระจายอย่างกว้างขวางในอุปกรณ์อิเล็กทรอนิกส์ทุกวันนี้ฉันเชื่อว่าพวกเราหลายคนได้พบคำถามเช่นนี้เป็นครั้งคราว พิจารณาอุปกรณ์อิเล็กทรอนิกส์Dและคอมพิวเตอร์PCที่เชื่อมต่อกับสายอนุกรม (RS-232 หรือคล้ายกัน) และจำเป็นต้องมีการแลกเปลี่ยนข้อมูลอย่างต่อเนื่อง Ie PCกำลังส่งเฟรมคำสั่งแต่ละเฟรมX msและDกำลังตอบกลับด้วยรายงานสถานะ / เฟรม telemetry แต่ละรายการY ms(สามารถส่งรายงานเป็นการตอบสนองต่อคำขอหรือเป็นอิสระ - ไม่สำคัญเลยที่นี่) กรอบการสื่อสารสามารถมีข้อมูลไบนารีใด ๆ โดยพลการ สมมติว่าเฟรมการสื่อสารเป็นแพ็กเก็ตที่มีความยาวคงที่ ปัญหา: เนื่องจากโปรโตคอลมีความต่อเนื่องด้านการรับอาจหลุดการซิงโครไนซ์หรือเพียงแค่ "เข้าร่วม" ที่อยู่ตรงกลางของเฟรมที่ส่งต่อเนื่องดังนั้นมันจะไม่รู้ว่าจุดเริ่มต้นของเฟรม (SOF) นั้นอยู่ที่ไหน ข้อมูลมีความหมายที่แตกต่างกันไปตามตำแหน่งของ SOF ข้อมูลที่ได้รับจะเสียหายและอาจเกิดขึ้นตลอดไป ทางออกที่ต้องการ รูปแบบการลด / ประสานที่เชื่อถือได้ในการตรวจจับ SOF ด้วยเวลาการกู้คืนสั้น ๆ (เช่นไม่ควรใช้เวลามากกว่านั้นพูด 1 เฟรมเพื่อซิงโครไนซ์อีกครั้ง) เทคนิคที่มีอยู่ฉันรู้ (และใช้บางส่วน) ของ: 1) ส่วนหัว / การตรวจสอบ - SOF เป็นค่าไบต์ที่กำหนดไว้ล่วงหน้า ตรวจสอบผลรวมในตอนท้ายของเฟรม จุดเด่น:เรียบง่าย …
24 serial  communication  protocol  brushless-dc-motor  hall-effect  hdd  scr  flipflop  state-machines  pic  c  uart  gps  arduino  gsm  microcontroller  can  resonance  memory  microprocessor  verilog  modelsim  transistors  relay  voltage-regulator  switch-mode-power-supply  resistance  bluetooth  emc  fcc  microcontroller  atmel  flash  microcontroller  pic  c  stm32  interrupts  freertos  oscilloscope  arduino  esp8266  pcb-assembly  microcontroller  uart  level  arduino  transistors  amplifier  audio  transistors  diodes  spice  ltspice  schmitt-trigger  voltage  digital-logic  microprocessor  clock-speed  overclocking  filter  passive-networks  arduino  mosfet  control  12v  switching  temperature  light  luminous-flux  photometry  circuit-analysis  integrated-circuit  memory  pwm  simulation  behavioral-source  usb  serial  rs232  converter  diy  energia  diodes  7segmentdisplay  keypad  pcb-design  schematics  fuses  fuse-holders  radio  transmitter  power-supply  voltage  multimeter  tools  control  servo  avr  adc  uc3  identification  wire  port  not-gate  dc-motor  microcontroller  c  spi  voltage-regulator  microcontroller  sensor  c  i2c  conversion  microcontroller  low-battery  arduino  resistors  voltage-divider  lipo  pic  microchip  gpio  remappable-pins  peripheral-pin-select  soldering  flux  cleaning  sampling  filter  noise  computers  interference  power-supply  switch-mode-power-supply  efficiency  lm78xx 

5
การจัดการขัดจังหวะในไมโครคอนโทรลเลอร์และตัวอย่าง FSM
คำถามเริ่มต้น ฉันมีคำถามทั่วไปเกี่ยวกับการจัดการอินเทอร์รัปต์ในไมโครคอนโทรลเลอร์ ฉันใช้ MSP430 แต่ฉันคิดว่าคำถามอาจขยายไปยังยูซีเอสอื่น ๆ ฉันต้องการทราบว่าเป็นวิธีปฏิบัติที่ดีในการเปิด / ปิดการใช้งานอินเตอร์รัปต์ตามรหัสหรือไม่ ฉันหมายถึงถ้าฉันมีบางส่วนของรหัสที่ไม่ไวต่อการขัดจังหวะ (หรือแย่กว่านั้นคือต้องไม่ฟังการขัดจังหวะไม่ว่าด้วยเหตุผลใดก็ตาม) ดีกว่าไหมที่จะ: ปิดการใช้งานอินเทอร์รัปต์ก่อนและเปิดใช้งานอีกครั้งหลังจากส่วนที่สำคัญ วางธงไว้ใน ISR ที่เกี่ยวข้องและ (แทนที่จะปิดการใช้งานอินเตอร์รัปต์) ตั้งค่าสถานะเป็นเท็จก่อนส่วนสำคัญและรีเซ็ตเป็นจริงทันทีหลังจากนั้น เพื่อป้องกันรหัสของ ISR จากการถูกดำเนินการ ไม่ใช่ทั้งสองข้อเสนอแนะจึงยินดีต้อนรับ! อัปเดต: อินเตอร์รัปต์และแผนภูมิสถานะ ฉันจะให้สถานการณ์ที่เฉพาะเจาะจง ให้เราสมมติว่าเราต้องการใช้แผนภูมิสถานะซึ่งประกอบด้วย 4 บล็อก: การเปลี่ยน / ผล เงื่อนไขการออก กิจกรรมเข้า ทำกิจกรรม นี่คือสิ่งที่อาจารย์สอนเราที่มหาวิทยาลัย อาจไม่ใช่วิธีที่ดีที่สุดในการทำคือทำตามรูปแบบนี้: while(true) { /* Transitions/Effects */ //---------------------------------------------------------------------- next_state = current_state; switch (current_state) { case STATE_A: …

3
กดแถวคีย์เดียวกันในเวลาเดียวกัน
ฉันกำลังออกแบบปุ่มกดใน VHDL ทุกอย่างทำงานได้ดีเมื่อกดปุ่มเพียงปุ่มเดียว ฉันกำลังสแกนแต่ละคอลัมน์เพื่อกดปุ่มในเครื่องสถานะและเมื่อไม่มีการกดปุ่มซึ่งเป็นเงื่อนไขที่pin4pin6pin7pin2 = "0000"ฉันสลับไปยังสถานะถัดไปเพื่อสแกนคอลัมน์ถัดไป ดังนั้นผมจึงตั้งคอลัมน์pin3pin1pin5ตามลำดับเพื่อ"001", และ"010""100" ในขณะที่การสแกนpin3pin1pin5เป็น"001"และถ้าpin4pin6pin7pin2เป็น"0100"แล้วก็ "9" ถูกกด ฉันประกาศใน VHDL pin4pin6pin7pin2เป็นอินพุตและpin3pin1pin5พอร์ตเอาต์พุต เมื่อฉันกด 6 และ 9 ในเวลาเดียวกันpin6และมีpin7 highปุ่มกดแรกจะถูกอ่านปุ่มที่สองจะถูกละเว้น เมื่อฉันกด 3 และ 7 ในเวลาเดียวกันคนแรกที่กดด้วยไม่กี่มิลลิวินาทีก่อนที่จะชนะและที่สำคัญคือการอ่านครั้งแรกที่สำคัญที่สองจะถูกละเว้นpin2และมีpin4high นี่คือส่วนที่ยุ่งยาก. เมื่อฉันกด 4 และ 6 ในเวลาเดียวกันฉันคาดว่าpin7จะเป็นhighแต่มันจะกลายเป็นlowและpin4pin6pin7pin2 = "0000"ซึ่งฉันไม่เข้าใจว่าทำไมและทำไม เนื่องจาก"0000"ตรวจพบว่าไม่มีการกดปุ่มใด ๆ เครื่องของรัฐจะกระโดดจากรัฐหนึ่งไปยังอีกรัฐหนึ่ง ในขณะที่ถือ 4 และ 6 หากผลักดันและใบ 4 หลายครั้งก็จะถูกตรวจพบว่าเป็น 6 กดหลายครั้งซึ่งเป็นปัญหาใหญ่ ฉันจะดีใจถ้าคุณสามารถช่วยฉันแก้ปัญหานี้! สิ่งเดียวกันเกิดขึ้นกับ "1" และ "2" …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.