שְׁאֵלָה:
האם SoftwareSerial נותר מחוץ ל- ATTiny85 / 84?
Jason94
2014-12-27 14:55:41 UTC
view on stackexchange narkive permalink

אני רוצה להשתמש ב- SoftwareSerial עם ה- ATTiny85 שלי וכשאני מחפש בגוגל מספר פרויקטים טוענים שהם משתמשים בו ... הורדתי את החומרה מ- https://code.google.com/p/arduino-tiny /, אך כשאני מנסה להוסיף את SoftwareSerial ולקמפל אני מקבל:

  שגיאה קטלנית: SoftwareSerial.h: אין קובץ או ספרייה כאלה  

החלפת הלוח ל- UNO גורמת לבעיה להיעלם, אז האם הם השאירו אותה בחוץ? כיצד אוכל לתקן זאת?

לא ניתן לשכפל.
עשיתי שכפול עם Arduino IDE 1.6.3 ומצאתי תשובה (למטה).
ארבע תשובות:
Omer
2014-12-27 16:54:09 UTC
view on stackexchange narkive permalink

תשובה קצרה - לא. זה לא נשאר בחוץ, להפך.

אך לפני שהתייחסתי לשגיאת המהדר שציינת, הבהרה קטנה:

הורדתי את החומרה מ- https://code.google.com/p / arduino-tiny /

הקישור שסיפקת אינו חומרה , אלא תוכנה המכונה ATtiny קבצי ליבה . הוא מכיל את הקבצים הדרושים שיעזרו לך לאסוף ולהעלות קוד מ- Arduino IDE ל- ATtiny (גם כאשר משתמשים ב- ArduinoISP כמתכנת).

ה SoftwareSerial היא ספרייה שמגיעה עם ה- zip / ההתקנה של Arduino IDE. אם הורדת את הגרסה האחרונה של Arduino IDE מאתר אתר Arduino, אתה אמור להיות מסוגל למצוא את קבצי הספרייה SoftwareSerial הנמצאים בכתובת:

  [נתיב להתקנת Arduino תיקיה] \ ספריות \ SoftwareSerial  

דוגמה לקבצי ספריית SoftwareSerial שאתה יכול לצפות למצוא שם הם SoftwareSerial.cpp ו- SoftwareSerial.h .

שגיאה קטלנית: SoftwareSerial.h: אין קובץ או ספרייה כאלה

שגיאת המהדר שאתה מקבל מרמזת כאילו המהדר לא יכול למצוא את קובץ הכותרת. (SoftwareSerial.h) עבור ספריית SoftwareSerial. זה אכן נראה די מוזר, מכיוון שספרייה זו אינה דורשת התקנה מיוחדת, וכאמור, היא חלק מהספריות המובנות בהתקנת IDE של ארדואינו.

אז, כדי למתן זאת, אני ממליץ שתעשה זאת:

  • ודא שתיקיית הספרייה קיימת במיקום שהוזכר לעיל
  • אם לא, סביר להניח שתוריד מחדש את התקנת ה- Arduino IDE, ולאחר מכן התקן את קבצי הליבה של ATtiny לפי ההוראות (חשוב!). הוראות התקנה ממוקמות בקובץ README בתוך קובץ ה- zip הליבה של ATTiny (זעיר \ avr \ README).
  • אם היא קיימת, ואתה עדיין מקבל שגיאת מהדר זו, עליך להתקין פגומה (אולי המהדר כולל תיקיות מבולגן). אני עדיין ממליץ לעקוב אחר ההתקנה מחדש כפי שהוזכר בתבליט הקודם.
  • וודא שאתה יכול למצוא את ה ATtiny 85 ברשימת הלוחות, ב כלים-> לוח ושהוא נבחר.
  • זווית אחרת שעשויה להיות לשפוך אור רב יותר על שגיאה זו, יהיה להפעיל את הפלט המילולי עבור המהדר (ניתן לעשות זאת ב- Arduino IDE, על ידי בחירה בקובץ-> העדפות-> "הראה פלט מילולי במהלך" ובדיקת "אוסף"). פלט משוכלל יכול לעזור לך להתחקות אחר שגיאות בשורת הפקודה של המהדר, כמו חסר תיקיות לכלול.
  • אחרון חביב, אם קיימת תיקיית SoftwareSerial, תוכל להשתמש ב- IDE של ארדואינו כדי לבדוק אם ה- IDE יכול לזהות את קיומה, על ידי מעבר לסקיצה-> ספריית ייבוא ​​ומחפש SoftwareSerial . אם היא לא שם, אז התיקיה לא ממוקמת כראוי מתחת ל'ספריות ', אמת את הנתיב כאמור לעיל (הזזת אותו?)

לבסוף, מתי תוכל הידור את הקוד שלך, נסה להשתמש בדוגמה SoftwareSerial שמגיעה עם הספרייה כדי לבדוק אותו. שים לב שזה לא הולך לעבוד 'מחוץ לקופסה' כמו עם Arduino Uno; ל- ATtiny אין אותה חומרת FTDI לתקשורת ישירה עם USB, ולכן למשלוח וקבלה של הודעות סדרתיות באמצעות ה- ATtiny תצטרך להשתמש ב- Arduino Uno כפרוקסי (באמצעות סיכות Uno 0 & 1) או להשתמש ייעודי USB לחומרה טורית דומה ל- זה.

החלפת הלוח ל- UNO גורמת לבעיה להיעלם

כהערה צדדית, מעבר ל- Uno יגרום לרוב הבעיות של ATtiny 'להיעלם' מכיוון שה- Uno מצויד הרבה יותר מ- ATtiny85 / 4, הן ברמת MCU והן ברמת לוח הפריצה, שתקבל עם Uno (ואשר לא מקבלים כשעובדים ישירות עם שבב כמו ATtiny). כמו כן, רוב בסיס הקוד שם הוא מכוון ל- Uno ולא ל- ATTiny. אז אם אתה עושה את הצעדים הראשונים שלך עם ה- ATtiny, היה מוכן שדברים רבים ש"סתם עבדו "עם ה- Uno ידרשו קוד נוסף / שונה לפני שהם יכול לעבוד עם ה- ATtiny (וחלקם לא יעבדו בכלל).

אתה יכול להשתמש בקוד Analog to Serial הפשוט שלי:

  / * לוקח קלט על ה- AtTiny85 מסיכת הקלט האנלוגית VERY TRICKY 2 (כפי שכותרתה במדריך HLT) ומוציאה אלה עם תוכנה טורית ל- arduino uno, או Duemillanove Hookup ATTINY85 pin 3 -> Arduino Uno pin 0 ATTINY85 pin 4 -> Arduino Uno pin 1h /www.instructables.com/id/Easy-ATTiny-Serial-Communication-with-Tiny-AVR-Pro/ * / # include <SoftwareSerial.h> // Definitions # define rxPin 4 # define txPin 3SoftwareSerial mySerial (rxPin; int sensorPin = 7; // PIN מסומן למעשה כ- "2" ב- HLT tutorialint sensorVal = -1; // שגרת ההתקנה פועלת פעם אחת כשלוחצים על reset: void setup () {pinMode (sensorPin, INPUT); mySerial.begin (9600); analogWrite (0,1); // זה סוג של פעימות לב כדי להראות שה ATTINY הוא "חי"} // שגרת הלולאה עוברת שוב ושוב על סנסורפיין לנצח: loop loop () {sensorVal = analogRead (sensorPin); mySerial.print ("קלט Val:"); mySerial.print (sensorVal); mySerial.println ();}  
Armin J.
2016-01-30 20:36:05 UTC
view on stackexchange narkive permalink

למטה תוכל למצוא את הקוד ליישום מינימלי של שליחת סיביות מסוג Bang-Bang, המתאים באופן אידיאלי לניפוי באגים. גודל הקוד הוא כ -60 בתים.

זה נותן 38400 באוד עבור 1 מגה-הרץ או 230400 באוד על שעון Attiny של 8 מגה-הרץ.

כתבתי אותו עבור Attiny 85.

ArminJo / AttinySendSerial_1Mhz_38400Bd

Eric Lee
2015-04-09 13:28:34 UTC
view on stackexchange narkive permalink

הייתה לי אותה בעיה ונראה שעם Arduino IDE 1.6.x, ספריות מוגדרות "לכל לוח" ולא שותפות יותר. לפחות, לא כל הספריות משותפות ונראה כי SoftwareSerial היא אחת מהן.

אז הפיתרון הוא העתקת ספריית SoftwareSerial מהתקנת Arduino ב [programs] / Arduino / hardware / arduino / avr / libraries / SoftwareSerial לתיקיית החומרה ATTiny שלך ב [מסמכים] / Arduino / hardware / tiny / avr / libraries / SoftwareSerial , והפעל מחדש את IDE, לפי [חוט זה ]. 1

Boocko
2015-09-06 02:08:53 UTC
view on stackexchange narkive permalink

כן, ב- IDE 1.6.x, ספריות מוגדרות "לכל לוח", הן ממוקמות בתיקיות מיוחדות ומסופקות על ידי פקיד לוח הצרכים. הספרייה של Digispark נקראת SoftSerial והיא כלולה. ב- IDE Check File / דוגמאות / DigisparkSoftSerial. בדקו גם ב https://digistump.com/wiki/digispark/tutorials/debugging

בקיצור, עליכם לכלול:

  # כלול את <SoftSerial.h> #include <TinyPinChange.h> 

ואז הגדר סיכות RX ו- TX (יכול להיות זהה במקרים מיוחדים):

  SoftSial (SOFT_RX_PIN, SOFT_TX_PIN); // RX, TX  

ואז השתמש ב- mySerial.println () & co.



שאלה ותשובה זו תורגמה אוטומטית מהשפה האנגלית.התוכן המקורי זמין ב- stackexchange, ואנו מודים לו על רישיון cc by-sa 3.0 עליו הוא מופץ.
Loading...