עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

שליטה על לדים דרך המחשב

Featured Replies

פורסם

אני רוצה לשלוט על כמה לדים דרך המחשב. יש לי ידע בתכנות (C/ASM), אין לי ידע באלקטרוניקה.

קראתי את המאמר הבא: http://www.codeproject.com/csharp/csppleds.asp

והבנתי בערך מה צריך לעשות על מנת להדליק לד - לשלוח 1 ל-data port המתאים. אבל מה קורה אם אני רוצה שהלד ידלוק כל הזמן (אני משער שכשאני שולח 1 ל-port המתאים, הלד דולק לזמן קצר ונכבה) ?

אפשר כמובן לכתוב קוד שמדליק את הלדים מחדש אחת לכמה זמן, אבל זה נראה לי קצת לא יעיל. האם יש דרך לעשות את זה בחומרה?

פורסם

למה לא יעיל? אתה עושה לולאה ושולח כל הזמן 1...

בכל מקרה אתה יכול לברר אם ה-data port שאליו אתה מחבר את הלדים עם דלגלגים (כמו parallel port) ואז אם אתה מזין 1, הוא ישאר שם..

ואם לא... אפשר לחבר דלגלגים ידנית:)

פורסם
  • מחבר

אני לא כ"כ מבין את המשפט האחרון - אני מתכוון לעבוד עם ה-parallel port, האם כאשר אני אזין 1 ישאר 1 ב-data port ?

לגבי יעילות, אם אני עושה לולאה ושולח כל הזמן 1, המעבד שלי יצטרך לעבוד קשה.

אפשר לשפר את זה ולהכניס sleep באמצע, לדוגמה:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/io.h>

#define PORT 0x378
#define INIT_VALUE 255
#define SLEEP_TIME 500000

int main(int argc, char *argv[])
{
unsigned char value = INIT_VALUE;

/* Set permissions for port */
if (ioperm(PORT, 1, 1) != 0) {
fprintf(stderr, "cannot access port");
return EXIT_FAILURE;
}

/* Output the value to PORT infinitely */
while (1) {
outb(value, PORT);
usleep(SLEEP_TIME);
}

return EXIT_SUCCESS;
}

אבל איך מחשבים את ה-SLEEP_TIME?

נראה לי שעדיף שזה יהיה ממומש בחומרה.

פורסם

אתה שולח ערך מסויים והוא נשאר שם עד שאתה משנה אותו..

לדוגמא 11000000

2 הלדים הראשונים ישארו דלוקים עד שתשלח ערך חדש

פורסם
  • מחבר

תודה, זה מה שהייתי צריך לדעת :)

פורסם

זה בדיוק מה שאמרתי:) אם אתה משתמש ב-parallel port ביציאות יש דלגלגים (flipflops) ואז אם אתה שולח 1 הוא ישמר שם עד שתשלח משהו חדש

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.