Skip to content
Carlos Vidales, “How to Calibrate Touch Screens” (Embedded Systems Programming magazine, June 2002).
Touch screens are finding their way into a variety of embedded products. Most touch-enabled devices will require a calibration routine. Here's a good one.
The program sample provided at 06vidales.zip includes three files: calibrate.c, calibrate.h, and sample.c. The hard work is done in the first. It contains two functions called setCalibrationMatrix() and getDisplayPoint(). The former implements Equations 13 through 18; the latter implements Equation 9. See the article “How to Calibrate Touch Screens” for more information.
Continue Reading
With a traditional account...
{* #signInForm *}
{* signInEmailAddress *}
{* currentPassword *}
{* /signInForm *}
Welcome back, {* welcomeName *}!
{* loginWidget *}
Welcome Back
{* #signInForm *}
{* signInEmailAddress *}
{* currentPassword *}
Sign In
{* /signInForm *}
Your account has been deactivated.
Account Reactivation Failed
Sorry, we could not verify that email address.
Account Activated
Your account has been reactivated.
You must verify your email address before signing in. Check your email for your verification email, or enter your email address in the form below to resend the email.
{* #resendVerificationForm *}
{* signInEmailAddress *}
{* /resendVerificationForm *}
Please confirm the information below before signing in.
{* #socialRegistrationForm *}
{* firstName *}
{* lastName *}
{* displayName *}
{* emailAddress *}
By clicking "Sign In", you confirm that you accept our
terms of service and have read and understand
privacy policy .
{* /socialRegistrationForm *}
Please confirm the information below before signing in. Already have an account? Sign In.
{* #registrationForm *}
{* emailAddress *}
{* newPassword *}
{* newPasswordConfirm *}
{* displayName *}
{* jobTitle *}
{* firstName *}
{* lastName *}
{* ednembJobfunction *}
{* jobFunctionOther *}
{* ednembIndustry *}
{* industryOther *}
{* linkedinProfileName *}
{* twitterProfileName *}
{* companyName *}
{* addressStreetAddress1 *}
{* addressStreetAddress2 *}
{* addressCountry *}
{* addressState *}
{* addressStateText *}
{* addressCity *}
{* addressPostalCode *}
{* phone *}
{* optInRegistration *}
{* optAgree *}
{* optShare *}
{* applicationAndTech_analog *}
{* applicationAndTech_power *}
{* applicationAndTech_memory *}
{* applicationAndTech_programmableLogic *}
{* applicationAndTech_computingGraphics *}
{* applicationAndTech_entertainment *}
{* applicationAndTech_networking *}
{* applicationAndTech_testAndMeasurement *}
{* applicationAndTech_electromechanicalComponents *}
{* applicationAndTech_connectorsInterconnects *}
{* applicationAndTech_rfOrMicrowave *}
{* applicationAndTech_microprocessorsMicrocontrollersSignal *}
{* applicationAndTech_icDesignTools *}
{* applicationAndTech_embeddedDevelopmentTools *}
{* applicationAndTech_controlSystems *}
{* applicationAndTech_mobileDevices *}
{* applicationAndTech_safetySecurity *}
{* applicationAndTech_passiveComponents *}
By clicking "Create Account", you confirm that you accept our
terms of service and have read and understand
privacy policy .
{* /registrationForm *}
We have sent a confirmation email to {* emailAddressData *}. Please check your email and click on the link to verify your email address.
We'll send you a link to create a new password.
{* #forgotPasswordForm *}
{* signInEmailAddress *}
{* /forgotPasswordForm *}
We've sent an email with instructions to create a new password. Your existing password has not been changed.
{* mergeAccounts {"custom": true} *}
{| foundExistingAccountText |} {| current_emailAddress |} .
{| moreInfoText |}
{| rendered_existing_provider_photo |}
{| existing_displayName |}
{| existing_provider_emailAddress |}
Created {| existing_createdDate |} at {| existing_siteName |}
{* #signInForm *}
{* signInEmailAddress *}
{* currentPassword *}
{* /signInForm *}
Sorry, we could not verify that email address. Enter your email below, and we'll send you another email.
{* #resendVerificationForm *}
{* signInEmailAddress *}
{* /resendVerificationForm *}
Check your email for a link to verify your email address.
Thank you for verifiying your email address.
{* #changePasswordFormNoAuth *}
{* newPassword *}
{* newPasswordConfirm *}
{* /changePasswordFormNoAuth *}
Your password has been successfully updated.
We didn't recognize that password reset code. Enter your email below, and we'll send you another email.
{* #resetPasswordForm *}
{* signInEmailAddress *}
{* /resetPasswordForm *}
We've sent you an email with instructions to create a new password. Your existing password has not been changed.
Unable to download the code. Please fix the problem with the link 06vidales.zip